Bmag incl gps rettelse

Dependencies:   mbed WDT MODSERIAL BME280

Branch:
MbedBMAGThrRev
Revision:
55:06c5f76e1a8c
Parent:
51:dbd8e6c2211b
Child:
59:48484125b507
--- a/SPS/SPS.cpp	Mon Jan 07 14:17:53 2019 +0000
+++ b/SPS/SPS.cpp	Fri Feb 15 12:53:30 2019 +0000
@@ -41,12 +41,13 @@
     \param preassure: string containing preassure measurement in hPa
     \param temperature: string containing temperature measured in deg C
     \param humidity: string containing air humidity percentage
+    \param altitude: string containing the gps altitude
     \param mag_time: string containing the last timestamp received from GSM-19 device eg. "000048.0"
     \param mag_nt: string containing the last mag measurement in nT eg. "036418.77"
     \param mag_sq: string containing info about the measurement quality of the last mag measurement eg. "99"
               
 */
-void SPS::UpdateCurrentString(string tag, string identifier_id, string group_id, string date, string time, string ZZZ,string encoding, string source_id, string interpreter_id, string data_line_version, string source_firmware_version, string interpreter_firmware_version, string barcode, string latitude, string longitude, bool gpsFixFlag, string batteryvoltage, string preassure, string temperature, string humidity, string mag_time, string mag_nt, string mag_sq, Serial * dbg){
+void SPS::UpdateCurrentString(string tag, string identifier_id, string group_id, string date, string time, string ZZZ,string encoding, string source_id, string interpreter_id, string data_line_version, string source_firmware_version, string interpreter_firmware_version, string barcode, string latitude, string longitude, bool gpsFixFlag, string batteryvoltage, string preassure, string temperature, string humidity, string altitude, string mag_time, string mag_nt, string mag_sq, Serial * dbg){
 
     this->currentString = "";
     this->currentString.resize(256);
@@ -105,6 +106,8 @@
     if(!gpsFixFlag || (strlen(longitude.c_str()) < 5)){
         addToCurrentString("NaN");    
     } 
+    addToCurrentString(SPACE);
+    addToCurrentString(altitude);
     addToCurrentString(SPACE); 
     
     if(gpsFixFlag){
@@ -210,6 +213,8 @@
     addToCurrentHeaderString(SPACE);
     addToCurrentHeaderString("Longitude");
     addToCurrentHeaderString(SPACE);
+    addToCurrentHeaderString("altitude");
+    addToCurrentHeaderString(SPACE);
     addToCurrentHeaderString("gpsFixFlag");   
     addToCurrentHeaderString(SPACE);
     addToCurrentHeaderString("batteryVoltage");
@@ -271,7 +276,7 @@
     \param mag_sq: string containing info about the measurement quality of the last mag measurement eg. "99"
               
 */ 
-void SPS::UpdateCurrentErrString(string tag, string identifier_id, string group_id, string date, string time, string ZZZ,string encoding, string source_id, string interpreter_id, string data_line_version, string source_firmware_version, string interpreter_firmware_version, string latitude, string longitude, bool gpsFixFlag, string mag_time, string mag_nt, string mag_sq, Serial * dbg){
+void SPS::UpdateCurrentErrString(string tag, string identifier_id, string group_id, string date, string time, string ZZZ,string encoding, string source_id, string interpreter_id, string data_line_version, string source_firmware_version, string interpreter_firmware_version, string latitude, string longitude, bool gpsFixFlag, string mag_time, string mag_nt, string mag_sq, Serial * dbg, bool magParseError){
 
     this->currentErrString = "";
     this->currentErrString.resize(256);
@@ -313,11 +318,22 @@
     if(!gpsFixFlag){
         addToCurrentErrString(SPACE);
         addToCurrentErrString("RTC");
+        addToCurrentErrString(SPACE);
+        addToCurrentErrString("C02");
+        addToCurrentErrString(SPACE);
+        addToCurrentErrString("C03");
     }
-    addToCurrentErrString(SPACE);
-    addToCurrentErrString("C02");
-    addToCurrentErrString(SPACE);
-    addToCurrentErrString("C03");
+    if((mag_nt == "NaN" && mag_sq == "NaN" && mag_time == "NaN") || magParseError){
+        addToCurrentErrString(SPACE);
+        addToCurrentErrString("MAG");
+        addToCurrentErrString(SPACE);
+        addToCurrentErrString("C20");
+        addToCurrentErrString(SPACE);
+        addToCurrentErrString("C21");
+        addToCurrentErrString(SPACE);
+        addToCurrentErrString("C22");     
+    }
+
     
     strLength = strlen(this->currentErrString.c_str());