|
|
|
@ -437,21 +437,7 @@ void EnvironmentSensorManager::initBasicGPS() { |
|
|
|
#endif |
|
|
|
|
|
|
|
// Try to detect if GPS is physically connected to determine if we should expose the setting
|
|
|
|
#ifdef PIN_GPS_EN |
|
|
|
pinMode(PIN_GPS_EN, OUTPUT); |
|
|
|
#ifdef PIN_GPS_EN_ACTIVE |
|
|
|
digitalWrite(PIN_GPS_EN, PIN_GPS_EN_ACTIVE); // Power on GPS
|
|
|
|
#else |
|
|
|
digitalWrite(PIN_GPS_EN, HIGH); // Power on GPS
|
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifdef PIN_GPS_RESET |
|
|
|
pinMode(PIN_GPS_RESET, OUTPUT); |
|
|
|
digitalWrite(PIN_GPS_RESET, PIN_GPS_RESET_ACTIVE); // assert for 10ms
|
|
|
|
delay(10); |
|
|
|
digitalWrite(PIN_GPS_RESET, !PIN_GPS_RESET_ACTIVE); |
|
|
|
#endif |
|
|
|
_location->begin(); |
|
|
|
|
|
|
|
#ifndef PIN_GPS_EN |
|
|
|
MESH_DEBUG_PRINTLN("No GPS wake/reset pin found for this board. Continuing on..."); |
|
|
|
@ -472,16 +458,12 @@ void EnvironmentSensorManager::initBasicGPS() { |
|
|
|
} else { |
|
|
|
MESH_DEBUG_PRINTLN("No GPS detected"); |
|
|
|
} |
|
|
|
#ifdef PIN_GPS_EN |
|
|
|
#ifdef PIN_GPS_EN_ACTIVE |
|
|
|
digitalWrite(PIN_GPS_EN, !PIN_GPS_EN_ACTIVE); |
|
|
|
#else |
|
|
|
digitalWrite(PIN_GPS_EN, LOW); // Power off GPS until the setting is changed
|
|
|
|
#endif |
|
|
|
#endif |
|
|
|
_location->stop(); |
|
|
|
gps_active = false; //Set GPS visibility off until setting is changed
|
|
|
|
} |
|
|
|
|
|
|
|
// gps code for rak might be moved to MicroNMEALoactionProvider
|
|
|
|
// or make a new location provider ...
|
|
|
|
#ifdef RAK_WISBLOCK_GPS |
|
|
|
void EnvironmentSensorManager::rakGPSInit(){ |
|
|
|
|
|
|
|
@ -561,27 +543,12 @@ void EnvironmentSensorManager::start_gps() { |
|
|
|
digitalWrite(gpsResetPin, HIGH); |
|
|
|
return; |
|
|
|
#endif |
|
|
|
#ifdef PIN_GPS_EN |
|
|
|
pinMode(PIN_GPS_EN, OUTPUT); |
|
|
|
#ifdef PIN_GPS_EN_ACTIVE |
|
|
|
digitalWrite(PIN_GPS_EN, PIN_GPS_EN_ACTIVE); |
|
|
|
#else |
|
|
|
digitalWrite(PIN_GPS_EN, HIGH); |
|
|
|
#endif |
|
|
|
#ifndef PIN_GPS_RESET |
|
|
|
return; |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifdef PIN_GPS_RESET |
|
|
|
pinMode(PIN_GPS_RESET, OUTPUT); |
|
|
|
digitalWrite(PIN_GPS_RESET, PIN_GPS_RESET_ACTIVE); // assert for 10ms
|
|
|
|
delay(10); |
|
|
|
digitalWrite(PIN_GPS_RESET, !PIN_GPS_RESET_ACTIVE); |
|
|
|
return; |
|
|
|
#endif |
|
|
|
_location->begin(); |
|
|
|
|
|
|
|
#ifndef PIN_GPS_RESET |
|
|
|
MESH_DEBUG_PRINTLN("Start GPS is N/A on this board. Actual GPS state unchanged"); |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
void EnvironmentSensorManager::stop_gps() { |
|
|
|
@ -591,17 +558,12 @@ void EnvironmentSensorManager::stop_gps() { |
|
|
|
digitalWrite(gpsResetPin, LOW); |
|
|
|
return; |
|
|
|
#endif |
|
|
|
#ifdef PIN_GPS_EN |
|
|
|
pinMode(PIN_GPS_EN, OUTPUT); |
|
|
|
#ifdef PIN_GPS_EN_ACTIVE |
|
|
|
digitalWrite(PIN_GPS_EN, !PIN_GPS_EN_ACTIVE); |
|
|
|
#else |
|
|
|
digitalWrite(PIN_GPS_EN, LOW); |
|
|
|
#endif |
|
|
|
return; |
|
|
|
#endif |
|
|
|
|
|
|
|
_location->stop(); |
|
|
|
|
|
|
|
#ifndef PIN_GPS_EN |
|
|
|
MESH_DEBUG_PRINTLN("Stop GPS is N/A on this board. Actual GPS state unchanged"); |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
void EnvironmentSensorManager::loop() { |
|
|
|
|