@@ -13,7 +13,7 @@ twai_message_t NodeControllerCore::create_message(uint32_t id, uint64_t *data) {
1313 return message;
1414}
1515
16- bool NodeControllerCore::Init (std::function<void (uint16_t nodeID, uint16_t messageID, uint64_t data)> onMessageReceived, uint16_t nodeID)
16+ bool NodeControllerCore::Init (std::function<void (uint8_t nodeID, uint16_t messageID, uint64_t data)> onMessageReceived, uint8_t nodeID)
1717{
1818 this ->debug = debug;
1919 this ->onMessageReceived = onMessageReceived;
@@ -161,20 +161,34 @@ void NodeControllerCore::rx_queue_event() {
161161 while (1 ){
162162 if (xQueueReceive (rx_queue, &message, RX_TX_BLOCK_TIME ) == pdTRUE){
163163 uint64_t data = 0 ;
164- uint16_t nodeID = 0 ;
164+ uint8_t nodeID = 0 ;
165165 uint16_t messageID = 0 ;
166166 memcpy (&data, message.data , 8 );
167- Serial.println (message.identifier , HEX );
168- nodeID = message.identifier >> 15 ;
169- messageID = message.identifier & 0x7FFF ;
167+ nodeID = message.identifier >> 21 ;
168+ messageID = message.identifier >> 5 ;
169+
170+ Serial.print (" Message received: " );
171+ Serial.print (" Node ID: " );
172+ Serial.print (nodeID, HEX );
173+ Serial.print (" Message ID: " );
174+ Serial.print (messageID, HEX );
175+ Serial.print (" Data: " );
176+ Serial.println (data, HEX );
177+
170178 this ->onMessageReceived (nodeID,messageID, data);
171179 }
172180 }
173181}
174182
175183void NodeControllerCore::sendMessage (uint16_t messageID, uint64_t *data) {
176- uint32_t id = (this ->nodeID << 15 ) | messageID;
177- Serial.println (id, HEX );
184+ uint32_t id = 0 ;
185+ id = ((this ->nodeID << 24 ) | (messageID << 8 )) >> 3 ;
186+ Serial.print (" Sending message with Node ID: " );
187+ Serial.print (nodeID, HEX );
188+ Serial.print (" Message ID: " );
189+ Serial.print (messageID, HEX );
190+ Serial.print (" Data: " );
191+ Serial.println (*data, HEX );
178192 twai_message_t message = create_message (id, data);
179193 xQueueSend (tx_queue, &message, portMAX_DELAY);
180194}
0 commit comments