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

Dependencies:   CsrLocation mbed GPSProvider

Fork of CsrLocationDemo by Qualcomm Technologies International, Ltd.

Files at this revision

API Documentation at this revision

Comitter:
zhjcpi
Date:
Tue May 27 10:54:52 2014 +0000
Parent:
4:b917d49df4bd
Child:
6:d040264b3329
Commit message:
Add protection code for state transferring and commands

Changed in this revision

CsrLocation.lib Show annotated file Show diff for this revision Revisions of this file
CsrLocationDemo.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/CsrLocation.lib	Tue May 27 08:09:34 2014 +0000
+++ b/CsrLocation.lib	Tue May 27 10:54:52 2014 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/zhjcpi/code/CsrLocation/#71690f7bb480
+http://mbed.org/users/zhjcpi/code/CsrLocation/#0d9b711fb646
--- a/CsrLocationDemo.cpp	Tue May 27 08:09:34 2014 +0000
+++ b/CsrLocationDemo.cpp	Tue May 27 10:54:52 2014 +0000
@@ -95,12 +95,22 @@
             break;
         case APP_CMD_START:
             sAppCmd = APP_CMD_IDLE;
+            if(pCsrLoc->CsrLocGetState() == CSR_LOC_STATE_RUN)
+            {
+	            CSR_APP_LOG_INFO("Cannot execute this command as location is in running state, please stop location firstly.\r\n");
+	            break;
+            }
             CSR_APP_LOG_INFO("start location.\r\n");
             sLedLocOn = 1;
             pCsrLoc->CsrLocStart(sPwrMode, sProto);
             break;
         case APP_CMD_STOP:
             sAppCmd = APP_CMD_IDLE;
+            if(pCsrLoc->CsrLocGetState() == CSR_LOC_STATE_IDLE)
+            {
+	            CSR_APP_LOG_INFO("Cannot execute this command as location is not in running state.\r\n");
+	            break;
+            }
             CSR_APP_LOG_INFO("stop location.\r\n");
             sLedLocOn = 0;
             pCsrLoc->CsrLocStop();
@@ -143,46 +153,76 @@
             sPinReset = 0;
             break;
         case APP_CMD_PTF_GETPOS:
+            sAppCmd = APP_CMD_IDLE;
+            if(pCsrLoc->CsrLocGetState() == CSR_LOC_STATE_RUN)
+            {
+	            CSR_APP_LOG_INFO("Cannot execute this command as location is in running state, please stop location firstly.\r\n");
+	            break;
+            }
             CSR_APP_LOG_INFO("lpm get pos.\r\n");
-            sAppCmd = APP_CMD_IDLE;
             pCsrLoc->CsrLocLpmGetPos();
             break;
         case APP_CMD_NMEA:
+            sAppCmd = APP_CMD_IDLE;
+            if(pCsrLoc->CsrLocGetState() == CSR_LOC_STATE_RUN)
+            {
+	            CSR_APP_LOG_INFO("Cannot execute this command as location is in running state, please stop location firstly.\r\n");
+	            break;
+            }
             if(sPwrMode != PWR_FULL)
             {
-                CSR_APP_LOG_INFO("Canot select NMEA protocol because current lpm is not supported for NMEA protocol.\r\n");
+                CSR_APP_LOG_INFO("Cannot select NMEA protocol because current lpm is not supported for NMEA protocol, pls switch to FPM firstly.\r\n");
             }
             else
             {
                 CSR_APP_LOG_INFO("select NMEA protocol.\r\n");
                 sProto = PROTO_NMEA;
-                sAppCmd = APP_CMD_IDLE;
             }
             break;
         case APP_CMD_OSP:
+            sAppCmd = APP_CMD_IDLE;
+            if(pCsrLoc->CsrLocGetState() == CSR_LOC_STATE_RUN)
+            {
+	            CSR_APP_LOG_INFO("Cannot execute this command as location is in running state, please stop location firstly.\r\n");
+	            break;
+            }
             CSR_APP_LOG_INFO("select OSP protocol.\r\n");
             sProto = PROTO_OSP;
-            sAppCmd = APP_CMD_IDLE;
             break;
         case APP_CMD_SWITCH_NMEA:
+            sAppCmd = APP_CMD_IDLE;
+            if(pCsrLoc->CsrLocGetState() == CSR_LOC_STATE_RUN)
+            {
+	            CSR_APP_LOG_INFO("Cannot execute this command as location is in running state, please stop location firstly.\r\n");
+	            break;
+            }
             CSR_APP_LOG_INFO("switch to NMEA protocol.\r\n");
-            sAppCmd = APP_CMD_IDLE;
             pCsrLoc->CsrLocDebugSwitch2Nmea();
             break;
         case APP_CMD_PM_FULL:
+            sAppCmd = APP_CMD_IDLE;
+            if(pCsrLoc->CsrLocGetState() == CSR_LOC_STATE_RUN)
+            {
+	            CSR_APP_LOG_INFO("Cannot execute this command as location is in running state, please stop location firstly.\r\n");
+	            break;
+            }
             CSR_APP_LOG_INFO("fpm set.\r\n");
-            sAppCmd = APP_CMD_IDLE;
             sPwrMode = PWR_FULL;
             break;
         case APP_CMD_PM_PTF:
+            sAppCmd = APP_CMD_IDLE;
+            if(pCsrLoc->CsrLocGetState() == CSR_LOC_STATE_RUN)
+            {
+	            CSR_APP_LOG_INFO("Cannot execute this command as location is in running state, please stop location firstly.\r\n");
+	            break;
+            }
             if(sProto == PROTO_NMEA)
             {
-                CSR_APP_LOG_INFO("Canot set lpm because LPM is not supported for current NMEA protocol.\r\n");
+                CSR_APP_LOG_INFO("Cannot set lpm because LPM is not supported for current NMEA protocol, pls switch to OSP firstly.\r\n");
             }
             else
             {
                 CSR_APP_LOG_INFO("lpm ptf set.\r\n");
-                sAppCmd = APP_CMD_IDLE;
                 sPwrMode = PWR_PTF;
             }
             break;