Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: payload.cpp
- Revision:
- 16:f4277e9b8612
- Parent:
- 9:486f65124378
- Child:
- 17:faa4d4976d22
diff -r 4a946d085e32 -r f4277e9b8612 payload.cpp --- a/payload.cpp Sat Jun 08 09:19:05 2019 +0000 +++ b/payload.cpp Sat Jun 29 09:53:19 2019 +0000 @@ -4,6 +4,22 @@ extern unsigned char rx_length, tx_length; extern uint8_t can_tx_data[8]; extern uint8_t can_rx_data[8]; + +typedef struct can_id_d { + int dest_id; + int source_id; + int message_id; +}; + +typedef struct data_field_d { + uint8_t cmd; + uint16_t value1; + uint16_t value2; + uint16_t value3; + uint8_t value4; +}; +can_id_d can_id_s; +data_field_d can_rxdata_frame; CANMessage tx_message; extern MemoryPool<CANMessage, 16> can_mpool; extern Queue<CANMessage, 16> can_queue; @@ -19,6 +35,7 @@ memcpy((void *)&tx_message, (void *)message, sizeof(tx_message)); printf("analyzePayload got message id=%d 0x%08x\r\n", tx_message.id, tx_message.id); + for (loop = 0; loop < tx_message.len; loop++) { can_rx_data[loop] = tx_message.data[loop]; @@ -29,7 +46,18 @@ { printf("data[%d]=%d\r\n", loop, can_rx_data[loop]); } - can_mpool.free(message); + can_id_s.dest_id = (tx_message.id & 0x1FFC0000) >> 18; + can_id_s.source_id = (tx_message.id & 0x0003FF80) >> 7; + can_id_s.message_id = (tx_message.id & 0x0000007F) >> 0; +// memcpy((void*)&can_rxdata_frame, (void*)can_rx_data, sizeof(can_rx_data)); + can_mpool.free(message); + printf("dest_id=%d source_id=%d message_id=%d \r\n", can_id_s.dest_id, can_id_s.source_id, can_id_s.message_id); + can_rxdata_frame.cmd = can_rx_data[0]; + can_rxdata_frame.value1 = (can_rx_data[2] << 8 ) | can_rx_data[1]; + can_rxdata_frame.value2 = (can_rx_data[4] << 8 ) | can_rx_data[3]; + can_rxdata_frame.value3 = (can_rx_data[6] << 8 ) | can_rx_data[5]; + can_rxdata_frame.value4 = can_rx_data[7]; + printf("cmd=%d, value1=0x%04x, value2=0x%04x, value3=0x%04x, value4=0x%02x \r\n", can_rxdata_frame.cmd, can_rxdata_frame.value1, can_rxdata_frame.value2, can_rxdata_frame.value3, can_rxdata_frame.value4); } }