GPS working with LoRa code - can't transmit faster that once every 6 seconds

Dependencies:   mbed LoRaWAN-lib_gps_lora SingleFrequencyLora

Revision:
12:d9144f16d78b
Parent:
11:f2a7f98cc9bf
--- a/l86.cpp	Wed Nov 15 15:27:36 2017 +0000
+++ b/l86.cpp	Fri Nov 24 14:26:09 2017 +0000
@@ -4,7 +4,7 @@
 #include "mbed.h"
 
 #ifdef DEBUGGER
-RawSerial pc2(PC_TX, PC_RX);    // USART2
+RawSerial pc2(USBTX, USBRX);    // USART2
 #endif
 
 /* Parse NMEA RMC sentence into RMC data struct */
@@ -51,7 +51,7 @@
 /* Print RMC_data struct to PC USART for debugging */
 void Print_RMC_data(RMC_data *RMC_data_print){
     pc2.printf("RMC_Message: %s",RMC_data_print->Message);
-    pc2.printf("UTC_Time: %s\r\n",RMC_data_print->UTC_Time);
+    /*pc2.printf("UTC_Time: %s\r\n",RMC_data_print->UTC_Time);
     pc2.printf("Status: %s\r\n",RMC_data_print->Status);
     if(strcmp(RMC_data_print->Status,"A") == 0){
         pc2.printf("Latitude: %s\r\n",RMC_data_print->Latitude);
@@ -62,26 +62,32 @@
         pc2.printf("Course: %s\r\n",RMC_data_print->Course_Over_Ground);
         pc2.printf("Date: %s\r\n",RMC_data_print->Date);
         pc2.printf("Mode: %s\r\n",RMC_data_print->Mode);
-    }
+    }*/
 }
 
 /* Parse RMC_data struct into GPS data struct ready for sending over LoRa */
 GPS_data Parse_RMC_data(RMC_data RMC_parsed){
     GPS_data GPS_parsed;
+    char tempLat[11]="0";
+    char tempLong[12]="0";
     if(strcmp(RMC_parsed.Status,"A") == 0){
         strcpy(GPS_parsed.UTC_Time,RMC_parsed.UTC_Time);
         if (strcmp(RMC_parsed.N_S_Indicator, "N") == 0){
-            strcpy(GPS_parsed.Latitude, strcat("+", RMC_parsed.Latitude));
+            tempLat[0] = '+';
         }
         else{
-            strcpy(GPS_parsed.Latitude, strcat("-", RMC_parsed.Latitude));
+            tempLat[0] = '-';
         }
+        strcat(tempLat, RMC_parsed.Latitude);
+        strcpy(GPS_parsed.Latitude,tempLat);
         if (strcmp(RMC_parsed.E_W_Indicator, "E") == 0){
-            strcpy(GPS_parsed.Longitude, strcat("+", RMC_parsed.Longitude));
+            tempLong[0] = '+';
         }
         else{
-            strcpy(GPS_parsed.Longitude, strcat("-", RMC_parsed.Longitude));
+            tempLong[0] = '-';
         }
+        strcat(tempLong, RMC_parsed.Longitude);
+        strcpy(GPS_parsed.Longitude, tempLong);
         strcpy(GPS_parsed.Speed_Over_Ground,RMC_parsed.Speed_Over_Ground);
         strcpy(GPS_parsed.Course_Over_Ground,RMC_parsed.Course_Over_Ground);
         strcpy(GPS_parsed.Date,RMC_parsed.Date);
@@ -94,7 +100,7 @@
         strcpy(GPS_parsed.Speed_Over_Ground,"0.00");
         strcpy(GPS_parsed.Course_Over_Ground,"000.00");
         strcpy(GPS_parsed.Date,"000000");
-        strcpy(GPS_parsed.Valid,"V");
+        strcpy(GPS_parsed.Valid,RMC_parsed.Status);
     }
     return GPS_parsed;
 }
@@ -109,3 +115,4 @@
     pc2.printf("Course: %s\r\n",GPS_data_print.Course_Over_Ground);
     pc2.printf("Date: %s\r\n",GPS_data_print.Date);
 }
+