@@ -45,21 +45,25 @@ typedef struct {
4545CAN_Packet packets[CAN_BUF_SIZE];
4646
4747// 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.
5558// 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);
6265 hwPinMode (CAN_INT, INPUT);
66+ return err <= 0 ;
6367}
6468bool transportInit (void )
6569{
@@ -73,9 +77,7 @@ bool transportInit(void)
7377 for (uint8_t i = 0 ; i < CAN_BUF_SIZE; i++) {
7478 _cleanSlot (i);
7579 }
76- _initFilters ();
77- return true ;
78-
80+ return _initFilters ();
7981}
8082
8183// clear single slot in buffer.
0 commit comments