gnss

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);
 }