most functionality to splashdwon, find neutral and start mission. short timeouts still in code for testing, will adjust to go directly to sit_idle after splashdown

Dependencies:   mbed MODSERIAL FATFileSystem

Revision:
11:3b241ecb75ed
Parent:
10:085ab7328054
--- a/IMU/IMU.h	Mon Oct 23 12:50:53 2017 +0000
+++ b/IMU/IMU.h	Fri Oct 27 00:37:32 2017 +0000
@@ -1,6 +1,9 @@
 #include "mbed.h"
 #include "MODSERIAL.h"
 
+// for Microstrain's MIPS protocol, try this link, or search on microstrain.com
+// http://www.microstrain.com/sites/default/files/3dm-gx5-45_dcp_manual_8500-0064_0.pdf
+
 #define _PI ((float) 3.14159265359)
 
 // state machine states
@@ -13,7 +16,7 @@
 #define CRC1  6 // crc low byte
 
 // data set descriptors
-#define IMU_DATA_SET                0x08
+#define IMU_DATA_SET                0x80
 #define GNSS_DATA_SET               0x81
 
 // enumerations for the Euler angle packet we care about
@@ -56,13 +59,18 @@
     double getLatitude();
     double getLongitude();
     double getAltitudeMSL();
-
-protected:
+    
+    protected:
     Ticker interval;
     MODSERIAL _rs232;
     
     char byte;
-    unsigned char state, len, descriptor, i, crc0, crc1, payload[30], checksum;
+    
+    unsigned char state, len, descriptor, i, packet[256];
+    unsigned int checksum, crc0, crc1;
+    
+/*    unsigned char state, len, descriptor, i, crc0, crc1, payload[30];
+    unsigned int checksum;*/
     
     float euler[3];
     double latLonAlt[3];
@@ -70,10 +78,10 @@
     bool is3dFixValid;
     char numSV;
 
-    void processPacket(char type, char length, unsigned char * data);
-    void processEulerCfPacket(char length, unsigned char * data);
-    void processLatLonAltPacket(char length, unsigned char * data);
-    void processGnssFixInformation(char length, unsigned char * data);
+    void processPayload(char type, char length, unsigned char * payload);
+    void processEulerCfPacket(char length, unsigned char * payload);
+    void processLatLonAltPacket(char length, unsigned char * payload);
+    void processGnssFixInformation(char length, unsigned char * payload);
 
     unsigned int calcChecksum(unsigned char * mip_packet, char checksum_range);