ESM: delegate gps management to LocationProvider
This commit is contained in:
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user