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:
Wed May 21 08:56:40 2014 +0000
Parent:
2:b70e3a839116
Child:
4:b917d49df4bd
Commit message:
Unify code for different platform.

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	Wed Mar 26 09:17:18 2014 +0000
+++ b/CsrLocation.lib	Wed May 21 08:56:40 2014 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/zhjcpi/code/CsrLocation/#d4fe184925f2
+http://mbed.org/users/zhjcpi/code/CsrLocation/#71690f7bb480
--- a/CsrLocationDemo.cpp	Wed Mar 26 09:17:18 2014 +0000
+++ b/CsrLocationDemo.cpp	Wed May 21 08:56:40 2014 +0000
@@ -7,6 +7,9 @@
 #include "mbed.h"
 #include "CsrLocation.h"
 
+#define APP_DBG_PORT_BAUD       115200
+#define CSR_APP_LOG_INFO(...)   sSerialDebug.printf(__VA_ARGS__)
+
 /* appliation commands */
 typedef enum AppCmd
 {
@@ -17,9 +20,12 @@
     APP_CMD_PM_FULL,		// Set full power mode
     APP_CMD_PM_PTF,			// Set low power PTF mode
     APP_CMD_PTF_GETPOS,		// Get location immediately in low power PTF mode
-    APP_CMD_START_FAILED,	// Process start failed case
-    APP_CMD_STOP_FAILED,	// Process stop failed case
-    APP_CMD_NMEA,			// Debug command, switch chip to NMEA protocol at 4800bps
+    APP_CMD_NMEA,			// proto mode is NMEA
+    APP_CMD_OSP,            // proto mode is OSP
+    APP_CMD_SWITCH_NMEA,    // Debug command, switch chip to NMEA protocol at 4800bps
+    APP_CMD_SWITCH_OSP,     // Debug command, switch chip to NMEA protocol at 4800bps
+    APP_CMD_START_FAILED,   // Process start failed case
+    APP_CMD_STOP_FAILED,    // Process stop failed case
     APP_CMD_ONOFF_ON,		// Debug command, pull onoff pin high level
     APP_CMD_ONOFF_OFF,      // Debug command, pull onoff pin low level
     APP_CMD_RESET_ON,       // Debug command, pull reset pin high level
@@ -35,15 +41,15 @@
 
 
 static int sAppCmd  = APP_CMD_IDLE;
-ePowerMode sPwrMode = PWR_FULL;
-
+static ePowerMode sPwrMode = PWR_FULL;
+static eProto     sProto = PROTO_OSP;
 
-static RawSerial        sSerialDebug(USBTX, USBRX);
-static RawSerial        sSerialLoc(p9, p10);
-static DigitalOut		sPinOnoff(p5);
-static DigitalOut		sPinReset(p6);
-static DigitalOut		sLedLocOn(LED1);
-static DigitalOut		sLedPosReport(LED2);
+static DBG_SERIAL_TYPE  sSerialDebug(PINMAP_UART_DEBUG_TX, PINMAP_UART_DEBUG_RX);
+static LOC_SERIAL_TYPE  sSerialLoc(PINMAP_UART_LOC_TX, PINMAP_UART_LOC_RX);
+static DigitalOut		sPinOnoff(PINMAP_GPIO_LOC_ONOFF);
+static DigitalOut		sPinReset(PINMAP_GPIO_LOC_RESET);
+static DigitalOut		sLedLocOn(LOC_LED1);
+static DigitalOut		sLedPosReport(LOC_LED2);
 
 
 int main(void)
@@ -52,7 +58,7 @@
 	tCsrLocConfig locConfig;
 
 	/* initialize the debug serial port */
-    sSerialDebug.baud(115200);
+    sSerialDebug.baud(APP_DBG_PORT_BAUD);
     sSerialDebug.attach(&_ConsoleRxHandler);
 
 	/* initialize the CsrLocConfig */
@@ -65,15 +71,18 @@
     pCsrLoc = new CsrLocation(&locConfig);
     if(pCsrLoc == NULL)
     {
-        sSerialDebug.printf("Failed to new csrLocation.\r\n");
+        CSR_APP_LOG_INFO("Failed to new csrLocation.\r\n");
         sSerialDebug.attach(NULL);
         return -1;
     }
+    else
+    {
+        CSR_APP_LOG_INFO("Success to new csrLocation.\r\n");
+    }
 
     /* Register output callback and event callback functions */
     pCsrLoc->CsrLocRegOutput(_AppOutputCallback, _AppEventCallback);
 
-    sSerialDebug.printf("mbed initialized OK.\r\n");
     _AppShowCmd();
 
     while(1)
@@ -86,26 +95,26 @@
             break;
         case APP_CMD_START:
             sAppCmd = APP_CMD_IDLE;
-            sSerialDebug.printf("start location.\r\n");
+            CSR_APP_LOG_INFO("start location.\r\n");
             sLedLocOn = 1;
-            pCsrLoc->CsrLocStart(sPwrMode);
+            pCsrLoc->CsrLocStart(sPwrMode, sProto);
             break;
         case APP_CMD_STOP:
             sAppCmd = APP_CMD_IDLE;
-            sSerialDebug.printf("stop location.\r\n");
+            CSR_APP_LOG_INFO("stop location.\r\n");
             sLedLocOn = 0;
             pCsrLoc->CsrLocStop();
             break;
         case APP_CMD_START_FAILED:
             sAppCmd = APP_CMD_IDLE;
-            sSerialDebug.printf("reset as start failed.\r\n");
+            CSR_APP_LOG_INFO("reset as start failed.\r\n");
             sLedLocOn = 0;
             pCsrLoc->CsrLocStop();
             pCsrLoc->CsrLocReset();
             break;
         case APP_CMD_STOP_FAILED:
             sAppCmd = APP_CMD_IDLE;
-            sSerialDebug.printf("reset as stop failed.\r\n");
+            CSR_APP_LOG_INFO("reset as stop failed.\r\n");
             sLedLocOn = 0;
             pCsrLoc->CsrLocStop();
             pCsrLoc->CsrLocReset();
@@ -114,42 +123,52 @@
             pCsrLoc->CsrLocUpdate();
             break;
         case APP_CMD_ONOFF_ON:
-            sSerialDebug.printf("onoff on.\r\n");
+            CSR_APP_LOG_INFO("onoff on.\r\n");
             sAppCmd = APP_CMD_IDLE;
             sPinOnoff = 1;
             break;
         case APP_CMD_ONOFF_OFF:
-            sSerialDebug.printf("onoff off.\r\n");
+            CSR_APP_LOG_INFO("onoff off.\r\n");
             sAppCmd = APP_CMD_IDLE;
             sPinOnoff = 0;
             break;
         case APP_CMD_RESET_ON:
-            sSerialDebug.printf("reset on.\r\n");
+            CSR_APP_LOG_INFO("reset on.\r\n");
             sAppCmd = APP_CMD_IDLE;
             sPinReset = 1;
             break;
         case APP_CMD_RESET_OFF:
-            sSerialDebug.printf("reset off.\r\n");
+            CSR_APP_LOG_INFO("reset off.\r\n");
             sAppCmd = APP_CMD_IDLE;
             sPinReset = 0;
             break;
         case APP_CMD_PTF_GETPOS:
-            sSerialDebug.printf("lpm get pos.\r\n");
+            CSR_APP_LOG_INFO("lpm get pos.\r\n");
             sAppCmd = APP_CMD_IDLE;
             pCsrLoc->CsrLocLpmGetPos();
             break;
         case APP_CMD_NMEA:
-            sSerialDebug.printf("switch to nmea.\r\n");
+            CSR_APP_LOG_INFO("select NMEA protocol.\r\n");
+            sProto = PROTO_NMEA;
+            sAppCmd = APP_CMD_IDLE;
+            break;
+        case APP_CMD_OSP:
+            CSR_APP_LOG_INFO("select OSP protocol.\r\n");
+            sProto = PROTO_OSP;
+            sAppCmd = APP_CMD_IDLE;
+            break;
+        case APP_CMD_SWITCH_NMEA:
+            CSR_APP_LOG_INFO("switch to NMEA protocol.\r\n");
             sAppCmd = APP_CMD_IDLE;
             pCsrLoc->CsrLocDebugSwitch2Nmea();
             break;
         case APP_CMD_PM_FULL:
-            sSerialDebug.printf("fpm set.\r\n");
+            CSR_APP_LOG_INFO("fpm set.\r\n");
             sAppCmd = APP_CMD_IDLE;
             sPwrMode = PWR_FULL;
             break;
         case APP_CMD_PM_PTF:
-            sSerialDebug.printf("lpm ptf set.\r\n");
+            CSR_APP_LOG_INFO("lpm ptf set.\r\n");
             sAppCmd = APP_CMD_IDLE;
             sPwrMode = PWR_PTF;
             break;
@@ -159,13 +178,15 @@
 
 static void _AppShowCmd(void)
 {
-    sSerialDebug.printf("Location commands:\r\n");
-    sSerialDebug.printf("    help     - help to show supported commands\r\n");
-    sSerialDebug.printf("    start    - begin location\r\n");
-    sSerialDebug.printf("    stop     - end location\r\n");
-    sSerialDebug.printf("    fpm      - full power mode\r\n");
-    sSerialDebug.printf("    ptf      - ptf low power mode\r\n");
-    sSerialDebug.printf("    getpos   - get location immediately in low power ptf mode\r\n");
+    CSR_APP_LOG_INFO("Location commands:\r\n");
+    CSR_APP_LOG_INFO("    help     - help to show supported commands\r\n");
+    CSR_APP_LOG_INFO("    start    - begin location\r\n");
+    CSR_APP_LOG_INFO("    stop     - end location\r\n");
+    CSR_APP_LOG_INFO("    fpm      - full power mode\r\n");
+    CSR_APP_LOG_INFO("    ptf      - ptf low power mode\r\n");
+    CSR_APP_LOG_INFO("    getpos   - get location immediately in low power ptf mode\r\n");
+    CSR_APP_LOG_INFO("    osp      - OSP mode\r\n");
+    CSR_APP_LOG_INFO("    nmea     - NMEA mode\r\n");
     
 }
 
@@ -176,14 +197,14 @@
     case LOC_OUTPUT_LOCATION:
     {
         tLocPosResp *pPosRsp = (tLocPosResp *)pMsgData;
-        sSerialDebug.printf("Loc: lat=%f, lon=%f, alt=%f\r\n", pPosRsp->lat, pPosRsp->lon, pPosRsp->alt);
+        CSR_APP_LOG_INFO("Loc: lat=%f, lon=%f, alt=%f\r\n", pPosRsp->lat, pPosRsp->lon, pPosRsp->alt);
         sLedPosReport = !sLedPosReport;
         break;
     }
     case LOC_OUTPUT_SV_STATUS:
     {
         tLocSvStatus *pSvStatus = (tLocSvStatus *)pMsgData;
-        sSerialDebug.printf("SV:week=%u, tow=%lu, GPS Num=%u, GLO Num=%u, GPS Mask=0x%lx, GLO Mask=0x%lx\r\n", 
+        CSR_APP_LOG_INFO("SV:week=%u, tow=%lu, GPS Num=%u, GLO Num=%u, GPS Mask=0x%lx, GLO Mask=0x%lx\r\n", 
                 pSvStatus->gps_week, pSvStatus->tow, pSvStatus->numOfSVs, pSvStatus->numOfGloSVs, 
                 pSvStatus->svUsedInFixMask, pSvStatus->gloSvUsedInFixMask);
         break;
@@ -201,23 +222,23 @@
     case CSR_LOC_EVENT_START_RESULT:
         if(data != 0)
         {
-            sSerialDebug.printf("start failed.\r\n");
+            CSR_APP_LOG_INFO("start failed.\r\n");
             sAppCmd = APP_CMD_START_FAILED;
         }
         else
         {
-            sSerialDebug.printf("start OK.\r\n");
+            CSR_APP_LOG_INFO("start OK.\r\n");
         }
         break;
     case CSR_LOC_EVENT_STOP_RESULT:
         if(data != 0)
         {
-            sSerialDebug.printf("stop failed.\r\n");
+            CSR_APP_LOG_INFO("stop failed.\r\n");
             sAppCmd = APP_CMD_STOP_FAILED;
         }
         else
         {
-            sSerialDebug.printf("stop OK.\r\n");
+            CSR_APP_LOG_INFO("stop OK.\r\n");
         }
         break;
     default:
@@ -252,73 +273,63 @@
 	if(strcmp(pCmd, "help") == 0)
     {
         sAppCmd = APP_CMD_HELP;
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
     }
     else if(strcmp(pCmd, "start") == 0)
     {
         sAppCmd = APP_CMD_START;
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
     }
     else if(strcmp(pCmd, "stop") == 0)
     {
         sAppCmd = APP_CMD_STOP;
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
     }
     else if(strcmp(pCmd, "fpm") == 0)
     {
         sAppCmd = APP_CMD_PM_FULL;
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
     }
     else if(strcmp(pCmd, "ptf") == 0)
     {
         sAppCmd = APP_CMD_PM_PTF;
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
     }
     else if(strcmp(pCmd, "getpos") == 0)
     {
         sAppCmd = APP_CMD_PTF_GETPOS;
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
     }
     else if(strcmp(pCmd, "nmea") == 0)
     {
         sAppCmd = APP_CMD_NMEA;
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
+    }
+    else if(strcmp(pCmd, "osp") == 0)
+    {
+        sAppCmd = APP_CMD_OSP;
+    }
+    else if(strcmp(pCmd, "switchnmea") == 0)
+    {
+        sAppCmd = APP_CMD_SWITCH_NMEA;
+    }
+    else if(strcmp(pCmd, "switchosp") == 0)
+    {
+        sAppCmd = APP_CMD_SWITCH_OSP;
     }
     else if(strcmp(pCmd, "onoffon") == 0)
     {
         sAppCmd = APP_CMD_ONOFF_ON;
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
     }
     else if(strcmp(pCmd, "onoffoff") == 0)
     {
         sAppCmd = APP_CMD_ONOFF_OFF;
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
     }
     else if(strcmp(pCmd, "reseton") == 0)
     {
         sAppCmd = APP_CMD_RESET_ON;
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
     }
     else if(strcmp(pCmd, "resetoff") == 0)
     {
         sAppCmd = APP_CMD_RESET_OFF;
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
     }
     else
     {
-        sSerialDebug.putc('\r');
-        sSerialDebug.putc('\n');
-        sSerialDebug.printf("Unknown command %s\r\n", pCmd);
+        CSR_APP_LOG_INFO("\r\nUnknown command %s\r\n", pCmd);
     }
+	
+	CSR_APP_LOG_INFO("\r\n");
 }