File tree Expand file tree Collapse file tree 3 files changed +26
-7
lines changed Expand file tree Collapse file tree 3 files changed +26
-7
lines changed Original file line number Diff line number Diff line change @@ -42,12 +42,14 @@ void setup()
4242 CAN.setFilterMask_Extended (CAN_FILTER_MASK_EXTENDED);
4343 CAN.setFilterMask_Standard (CAN_FILTER_MASK_STANDARD);
4444
45- for (int c=16 ; c <= 23 ; c++) {
46- CAN.setMailboxID (c, 0x0100 );
45+ for (int mailbox = 0 ; mailbox < R7FA4M1_CAN::CAN_MAX_EXTENDED_MAILBOXES; mailbox++)
46+ {
47+ CAN.setFilterId_Extended (mailbox, 0x0100 );
4748 }
4849
49- for (int c=24 ; c <= 31 ; c++) {
50- CAN.setMailboxID (c, 0x10 );
50+ for (int mailbox = 0 ; mailbox < R7FA4M1_CAN::CAN_MAX_STANDARD_MAILBOXES; mailbox++)
51+ {
52+ CAN.setFilterId_Standard (mailbox, 0x10 );
5153 }
5254
5355 if (!CAN.begin (CanBitRate::BR_250k))
Original file line number Diff line number Diff line change @@ -200,11 +200,23 @@ void R7FA4M1_CAN::setFilterMask_Extended(uint32_t const mask)
200200 _can_mailbox_mask[5 ] = mask;
201201}
202202
203- void R7FA4M1_CAN::setMailboxID (size_t const mailbox, uint32_t const id)
203+ void R7FA4M1_CAN::setFilterId_Standard (size_t const mailbox, uint32_t const id)
204204{
205- _can_mailbox[mailbox].mailbox_id = id;
205+ if (mailbox > CAN_MAX_STANDARD_MAILBOXES)
206+ return ;
207+
208+ size_t const mailbox_idx = CAN_MAX_STANDARD_MAILBOX_OFFSET + mailbox;
209+ _can_mailbox[mailbox_idx].mailbox_id = id;
206210}
207211
212+ void R7FA4M1_CAN::setFilterId_Extended (size_t const mailbox, uint32_t const id)
213+ {
214+ if (mailbox > CAN_MAX_EXTENDED_MAILBOXES)
215+ return ;
216+
217+ size_t const mailbox_idx = CAN_MAX_EXTENDED_MAILBOX_OFFSET + mailbox;
218+ _can_mailbox[mailbox_idx].mailbox_id = id;
219+ }
208220
209221int R7FA4M1_CAN::enableInternalLoopback ()
210222{
Original file line number Diff line number Diff line change @@ -56,7 +56,8 @@ class R7FA4M1_CAN final : public HardwareCAN
5656
5757 void setFilterMask_Standard (uint32_t const mask);
5858 void setFilterMask_Extended (uint32_t const mask);
59- void setMailboxID (size_t const mailbox, uint32_t const id);
59+ void setFilterId_Standard (size_t const mailbox, uint32_t const id);
60+ void setFilterId_Extended (size_t const mailbox, uint32_t const id);
6061
6162 int enableInternalLoopback ();
6263 int disableInternalLoopback ();
@@ -73,9 +74,13 @@ class R7FA4M1_CAN final : public HardwareCAN
7374 /* This function is used by the library and should NOT be called by the user. */
7475 void onCanCallback (can_callback_args_t * p_args);
7576
77+ static size_t constexpr CAN_MAX_STANDARD_MAILBOXES = 8U ;
78+ static size_t constexpr CAN_MAX_EXTENDED_MAILBOXES = 8U ;
7679
7780private:
7881 static size_t constexpr CAN_MAX_NO_MAILBOXES = 32U ;
82+ static size_t constexpr CAN_MAX_STANDARD_MAILBOX_OFFSET = 24U ;
83+ static size_t constexpr CAN_MAX_EXTENDED_MAILBOX_OFFSET = 16U ;
7984
8085 int const _can_tx_pin;
8186 int const _can_rx_pin;
You can’t perform that action at this time.
0 commit comments