Csr location class shows location and satellite information, which supports H13467 + ST F103RB/NXP LCP1549 boards now.

Dependents:   CsrLocationDemo CsrLocationDemo

Fork of CsrLocation by jie zhao

Revision:
20:88db82cf3f0f
Parent:
18:5d72465991f5
--- a/CsrLocation.cpp	Tue Nov 18 09:03:17 2014 +0000
+++ b/CsrLocation.cpp	Thu Nov 27 10:28:35 2014 +0000
@@ -128,6 +128,9 @@
         /* Csr Location SDK version */
         CSR_LOG_INFO("==== CSR LOC SDK version: %s Date: %s ====\r\n", CSR_LOC_SDK_VER, __DATE__ "  " __TIME__);
 
+        /* trigger on_off */
+        _CsrLocHwOnoff();
+
         /* open UART */
         if (proto == PROTO_NMEA) {
             CSR_LOG_INFO("Checking NMEA protocol...\r\n");
@@ -140,9 +143,6 @@
         }
         _CsrLocUartInit();
 
-        /* trigger on_off */
-        _CsrLocHwOnoff();
-
         locState    = CSR_LOC_STATE_RUN;
         bPwrModeRsp = false;
         bVerRsp     = false;
@@ -299,6 +299,19 @@
     }
 
     while (in != out) {
+        if (bTimeoutFlag) {
+            pTimeoutChk->detach();
+            bTimeoutFlag = false;
+            if ((protoState == PROTO_STATE_DET_OSP) || (protoState == PROTO_STATE_DET_OSP_FROM_NMEA)) {
+                _CsrLocDetProtoOspTimeout();
+            } else if ((protoState == PROTO_STATE_DET_NMEA) || (protoState == PROTO_STATE_DET_NMEA_FROM_OSP)) {
+                _CsrLocDetProtoNmeaTimeout();
+            } else {
+                CSR_LOG_INFO("timeout in unknown protocol state %d.\r\n", protoState);
+            }
+            return;
+        }
+
         data = serialBuf[out++];
         out &= (MAX_SERIAL_BUF_LEN - 1);
         switch (protoState) {