This class provides an API to communicate with a u-blox GNSS chip. The files here were originally part of the C027_Support library (https://developer.mbed.org/teams/ublox/code/C027_Support/ at revision 138:dafbbf31bf76) but have been separated out, primarily for use on the u-blox C030 board where the cellular interace portion of the C027_Support library will instead be provided through the new mbed Cellular API.

Dependents:   example-ublox-at-cellular-interface-ext example-low-power-sleep example-C030-out-of-box-demo example-C030-out-of-box-demo ... more

Revision:
2:b10ca4aa2e5e
Parent:
1:ef70a58a6c98
Child:
3:2a1cd49ead85
--- a/gnss.cpp	Mon Apr 10 11:28:24 2017 +0100
+++ b/gnss.cpp	Thu Apr 13 14:45:17 2017 +0000
@@ -26,17 +26,29 @@
 GnssParser::GnssParser(void)
 {
     // Create the power pins but set everything to disabled
+    _gnssPower = NULL;
+    _gnssEnable = NULL;
+    
+#if defined GNSSPWR && defined TARGET_UBLOX_C030 /* TODO  */
     _gnssPower = new DigitalInOut(GNSSPWR, PIN_OUTPUT, OpenDrain, 0);
+#endif
+#if defined GNSSEN && defined TARGET_UBLOX_C030 /* TODO  */
     _gnssEnable = new DigitalInOut(GNSSEN, PIN_OUTPUT, PushPullNoPull, 0);
+#endif
 }
 
 GnssParser::~GnssParser(void)
 {
     // Set the power pins to lowest power state before ending
-   *_gnssPower = 0;
-   *_gnssEnable = 0;
-   delete _gnssPower;
-   delete _gnssEnable;
+    if (_gnssPower != NULL) {
+       *_gnssPower = 0;
+        delete _gnssPower;
+    }
+    
+    if (_gnssEnable != NULL) {
+        *_gnssEnable = 0;
+        delete _gnssEnable;
+    }
 }
 
 void GnssParser::powerOff(void)
@@ -49,9 +61,13 @@
 void GnssParser::_powerOn(void)
 {
     // Power up and enable the module
-    *_gnssPower = 1;
+    if (_gnssPower != NULL) {
+       *_gnssPower = 1;
+    }
     wait_ms (1);
-    *_gnssEnable = 1;
+    if (_gnssEnable != NULL) {
+       *_gnssEnable = 1;
+    }
     wait_ms (1);
 }