JEK changes enabling proper recording of IMU/GPS datastrams - 02-APR-2013

Dependencies:   mbed

Fork of GPS_Incremental by Dan Matthews

Files at this revision

API Documentation at this revision

Comitter:
jekain314
Date:
Sat Apr 06 21:24:52 2013 +0000
Parent:
6:2a8486283198
Child:
8:13724ed3f825
Commit message:
Version fixing the POSVEL message to work correctly in Waldo_FCS

Changed in this revision

PCMessaging.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/PCMessaging.h	Tue Apr 02 15:22:37 2013 +0000
+++ b/PCMessaging.h	Sat Apr 06 21:24:52 2013 +0000
@@ -1,7 +1,7 @@
 //these are defines for the messages that are sent from the PC across the USB
 //these messages produce reactions on the mbed
-const unsigned char STATUS_MSG          =0;
-const unsigned char POSVEL_MSG          =1;
+const unsigned char  STATUS_MSG         =0;
+const unsigned char  POSVEL_MSG         =1;
 const unsigned char  STARTDATA_MSG      =2;
 const unsigned char  STOPDATA_MSG       =3;
 const unsigned char  STARTSTREAM_MSG    =4;
@@ -29,7 +29,7 @@
 
 const unsigned char numMessages = 8;    //number of potential messages
 char msgList[numMessages][32];          //text array storing the command messages from the PC
-char minMessageSize = 10;               //minimum size of a text message
+char minMessageSize = 11;               //minimum size of a text message
 unsigned char CR = 0x0d;                //ASCII Carriage Return
 unsigned char LF = 0x0a;                //ASCII Line Feed
 
@@ -58,21 +58,23 @@
         
         // Read in next character
         char inChar = toPC.getc();  //read char from the USB serial link to the PC
+        //toPC.printf("%02x ",inChar);
         
         //incoming messages will end witb a CR / LF -- disregard these chars
-        if (inChar == CR || inChar == LF) return;
+        if (inChar == CR || inChar == LF)  return; //CR is a 0x0a
         
         serBuf[serBufChars++] = inChar; //set this char in a char array
         
         //no need to continue if numChars are less than the shortest candidate message
-        if (serBufChars < minMessageSize) return;
-        
+        //if (serBufChars < minMessageSize) return;
+                
         // Append end of string
         //We always assume we have a complete message string and test for this below
         serBuf[serBufChars] = '\0';
         
         bool validMessage = false;
         
+        
         // Check for valid message -- there are numMessages possible messages
         for (int m = 0; m < numMessages && !validMessage; m++) //check for all messages ... 
         {
@@ -83,7 +85,7 @@
             if (serBufChars == strlen(msgList[m]) && strncmp(serBuf, msgList[m], serBufChars) == 0 )
             {
             
-                //toPC.printf( "\n       found valid message \n\n");
+                //toPC.printf( "\n       found valid message %s  \n\n", serBuf);
 
                 validMessage = true;
                 serBufChars = 0; //reset the character count to reset for next message
@@ -185,10 +187,17 @@
             double lonPos = posMsg.longitude + (eVel/lonRateFac)*elTime;            
             double htPos  = posMsg.height    + velMsg.verticalSpeed/(60*1852)*elTime;
             
-            toPC.printf("WMsg POSVEL %5.3lf %1d %s %8.5lf %9.5lf %4.3lf %4.3lf %4.3lf %4.3lf\n", 
+            char solReady = 'N';
+            //solStatus 
+            if (posMsg.solStatus == 0) //see description of solution status in OEMV615.h
+            {
+                solReady = 'Y';
+            }
+            
+            toPC.printf("WMsg POSVEL %5.3lf %1d %c %8.5lf %9.5lf %4.3lf %4.3lf %4.3lf %4.3lf\n", 
                          posTime, 
                          posMsg.numSolSV,
-                         posMsg.solStatus,
+                         solReady,
                          latPos,
                          lonPos,
                          htPos,
--- a/main.cpp	Tue Apr 02 15:22:37 2013 +0000
+++ b/main.cpp	Sat Apr 06 21:24:52 2013 +0000
@@ -226,6 +226,7 @@
         //read the USB serial data from the PC to check for commands
         //in the primary real-time portion, there are no bytes from the PC so this has no impact
         readFromPC();
+                
         processPCmessages(fpNav, posMsg, velMsg);
 
 //