paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [5302] Use CRC in fms_spi_autopilot_msg.c, and don'


From: Allen Ibara
Subject: [paparazzi-commits] [5302] Use CRC in fms_spi_autopilot_msg.c, and don' t parse up msg if it fails crc
Date: Tue, 10 Aug 2010 22:26:20 +0000

Revision: 5302
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=5302
Author:   aibara
Date:     2010-08-10 22:26:19 +0000 (Tue, 10 Aug 2010)
Log Message:
-----------
Use CRC in fms_spi_autopilot_msg.c, and don't parse up msg if it fails crc

Modified Paths:
--------------
    paparazzi3/trunk/sw/airborne/fms/fms_spi_autopilot_msg.c

Modified: paparazzi3/trunk/sw/airborne/fms/fms_spi_autopilot_msg.c
===================================================================
--- paparazzi3/trunk/sw/airborne/fms/fms_spi_autopilot_msg.c    2010-08-10 
22:25:16 UTC (rev 5301)
+++ paparazzi3/trunk/sw/airborne/fms/fms_spi_autopilot_msg.c    2010-08-10 
22:26:19 UTC (rev 5302)
@@ -32,6 +32,7 @@
 #include "fms_spi_link.h"
 #include "fms_autopilot_msg.h"
 #include "fms_spi_autopilot_msg.h"
+#include "fms_crc.h"
 
 /* all these for telemetry */
 #include "messages2.h"
@@ -148,13 +149,22 @@
 
 void spi_ap_link_periodic()
 {
-  static struct AutopilotMessagePTUp msg_up;
-  static struct AutopilotMessagePTDown msg_down;
+  static struct AutopilotMessageCRCFrame msg_up;
+  static struct AutopilotMessageCRCFrame msg_down;
+  static uint32_t crc_errors = 0;
+  static uint32_t foo = 0;
+  crc_t crc_in;
 
-  passthrough_down_fill(&msg_down);
+  passthrough_down_fill(&msg_down.payload.msg_down);
+  msg_down.crc = crc__calc_block_crc8(&msg_down, sizeof(union 
AutopilotMessage));
 
   // SPI transcieve
-  spi_link_send(&msg_down, sizeof(union AutopilotMessage), &msg_up);
+  spi_link_send(&msg_down, sizeof(struct AutopilotMessageCRCFrame), &msg_up);
+  crc_in = crc__calc_block_crc8(&msg_up, sizeof(union AutopilotMessage));
 
-  passthrough_up_parse(&msg_up);
+  if(msg_up.crc != crc_in) {
+    crc_errors++;
+  } else {
+    passthrough_up_parse(&msg_up.payload.msg_up);
+  }
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]