Feng Hong / Mbed OS Nucleo_rtos_basic
Revision:
9:486f65124378
Parent:
8:6105ffbaf237
Child:
16:f4277e9b8612
diff -r 6105ffbaf237 -r 486f65124378 payload.cpp
--- a/payload.cpp	Sat Mar 23 09:18:03 2019 +0000
+++ b/payload.cpp	Sat Apr 06 04:06:53 2019 +0000
@@ -2,18 +2,34 @@
 
 extern unsigned char rx_buffer[8], tx_buffer[8];
 extern unsigned char rx_length, tx_length;
-
+extern uint8_t can_tx_data[8];
+extern uint8_t can_rx_data[8];
+CANMessage tx_message;
+extern MemoryPool<CANMessage, 16> can_mpool;
+extern Queue<CANMessage, 16> can_queue;
 void analyzePayload()
 {
-    int i;
+    int loop;
     
     printf("analyzePayload thread\r\n");
     while (true) {
         osEvent evt = can_queue.get();
         if (evt.status == osEventMessage) {
             CANMessage *message = (CANMessage*)evt.value.p;
+            memcpy((void *)&tx_message, (void *)message, sizeof(tx_message)); 
 
-            mpool.free(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];
+            }
+            
+            printf("analyzePayload got data: length:%d\r\n", tx_message.len);
+            for (loop = 0; loop < tx_message.len; loop++)
+            {
+                printf("data[%d]=%d\r\n", loop, can_rx_data[loop]);
+            }  
+            can_mpool.free(message);                    
         }
     }