@@ -45,21 +45,25 @@ typedef struct {
45
45
CAN_Packet packets[CAN_BUF_SIZE];
46
46
47
47
// filter incoming messages (MCP2515 feature)
48
- void _initFilters () {
49
- if (!canInitialized)
50
- return ;
51
- CAN0.setMode (MODE_CONFIG);
52
- CAN0.init_Mask (0 ,1 ,0x0000FF00 ); // Init first mask. Only destination address will be used to filter messages
53
- CAN0.init_Filt (0 ,1 ,BROADCAST_ADDRESS<<8 ); // Init first filter. Accept broadcast messages.
54
- CAN0.init_Filt (1 ,1 ,_nodeId<<8 ); // Init second filter. Accept messages send to this node.
48
+ bool _initFilters () {
49
+ if (!canInitialized) {
50
+ return false ;
51
+ }
52
+ uint8_t err=0 ;
53
+ err+=CAN0.setMode (MODE_CONFIG);
54
+
55
+ err+=CAN0.init_Mask (0 ,1 ,0x0000FF00 ); // Init first mask. Only destination address will be used to filter messages
56
+ err+=CAN0.init_Filt (0 ,1 ,BROADCAST_ADDRESS<<8 ); // Init first filter. Accept broadcast messages.
57
+ err+=CAN0.init_Filt (1 ,1 ,_nodeId<<8 ); // Init second filter. Accept messages send to this node.
55
58
// second mask and filters need to be set. Otherwise all messages would be accepted.
56
- CAN0.init_Mask (1 ,1 ,0xFFFFFFFF ); // Init second mask.
57
- CAN0.init_Filt (2 ,1 ,0xFFFFFFFF ); // Init third filter.
58
- CAN0.init_Filt (3 ,1 ,0xFFFFFFFF ); // Init fourth filter.
59
- CAN0.init_Filt (4 ,1 ,0xFFFFFFFF ); // Init fifth filter.
60
- CAN0.init_Filt (5 ,1 ,0xFFFFFFFF ); // Init sixth filter.
61
- CAN0.setMode (MCP_NORMAL);
59
+ err+= CAN0.init_Mask (1 ,1 ,0xFFFFFFFF ); // Init second mask.
60
+ err+= CAN0.init_Filt (2 ,1 ,0xFFFFFFFF ); // Init third filter.
61
+ err+= CAN0.init_Filt (3 ,1 ,0xFFFFFFFF ); // Init fourth filter.
62
+ err+= CAN0.init_Filt (4 ,1 ,0xFFFFFFFF ); // Init fifth filter.
63
+ err+= CAN0.init_Filt (5 ,1 ,0xFFFFFFFF ); // Init sixth filter.
64
+ err+= CAN0.setMode (MCP_NORMAL);
62
65
hwPinMode (CAN_INT, INPUT);
66
+ return err <= 0 ;
63
67
}
64
68
bool transportInit (void )
65
69
{
@@ -73,9 +77,7 @@ bool transportInit(void)
73
77
for (uint8_t i = 0 ; i < CAN_BUF_SIZE; i++) {
74
78
_cleanSlot (i);
75
79
}
76
- _initFilters ();
77
- return true ;
78
-
80
+ return _initFilters ();
79
81
}
80
82
81
83
// clear single slot in buffer.
0 commit comments