File tree 3 files changed +26
-7
lines changed
3 files changed +26
-7
lines changed Original file line number Diff line number Diff line change @@ -42,12 +42,14 @@ void setup()
42
42
CAN.setFilterMask_Extended (CAN_FILTER_MASK_EXTENDED);
43
43
CAN.setFilterMask_Standard (CAN_FILTER_MASK_STANDARD);
44
44
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 );
47
48
}
48
49
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 );
51
53
}
52
54
53
55
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)
200
200
_can_mailbox_mask[5 ] = mask;
201
201
}
202
202
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)
204
204
{
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;
206
210
}
207
211
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
+ }
208
220
209
221
int R7FA4M1_CAN::enableInternalLoopback ()
210
222
{
Original file line number Diff line number Diff line change @@ -56,7 +56,8 @@ class R7FA4M1_CAN final : public HardwareCAN
56
56
57
57
void setFilterMask_Standard (uint32_t const mask);
58
58
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);
60
61
61
62
int enableInternalLoopback ();
62
63
int disableInternalLoopback ();
@@ -73,9 +74,13 @@ class R7FA4M1_CAN final : public HardwareCAN
73
74
/* This function is used by the library and should NOT be called by the user. */
74
75
void onCanCallback (can_callback_args_t * p_args);
75
76
77
+ static size_t constexpr CAN_MAX_STANDARD_MAILBOXES = 8U ;
78
+ static size_t constexpr CAN_MAX_EXTENDED_MAILBOXES = 8U ;
76
79
77
80
private:
78
81
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 ;
79
84
80
85
int const _can_tx_pin;
81
86
int const _can_rx_pin;
You can’t perform that action at this time.
0 commit comments