11#include < Arduino.h>
2- // #include "t1000e_sensors.h"
32#include " target.h"
4- #include < helpers/sensors/MicroNMEALocationProvider.h>
53
64MinewsemiME25LS01Board board;
75
@@ -10,9 +8,14 @@ RADIO_CLASS radio = new Module(P_LORA_NSS, P_LORA_DIO_1, P_LORA_RESET, P_LORA_BU
108WRAPPER_CLASS radio_driver (radio, board);
119
1210VolatileRTCClock rtc_clock;
13- MicroNMEALocationProvider nmea = MicroNMEALocationProvider(Serial1, &rtc_clock);
14- // T1000SensorManager sensors = T1000SensorManager(nmea);
15- me25ls01SensorManager sensors = me25ls01SensorManager(nmea);
11+ extern EnvironmentSensorManager sensors;
12+ #if ENV_INCLUDE_GPS
13+ #include < helpers/sensors/MicroNMEALocationProvider.h>
14+ MicroNMEALocationProvider nmea = MicroNMEALocationProvider(Serial1, &rtc_clock);
15+ EnvironmentSensorManager sensors = EnvironmentSensorManager(nmea);
16+ #else
17+ EnvironmentSensorManager sensors;
18+ #endif
1619
1720#ifdef DISPLAY_CLASS
1821 NullDisplayDriver display;
@@ -92,118 +95,4 @@ void radio_set_tx_power(uint8_t dbm) {
9295mesh::LocalIdentity radio_new_identity () {
9396 RadioNoiseListener rng (radio);
9497 return mesh::LocalIdentity (&rng); // create new random identity
95- }
96-
97- void me25ls01SensorManager::start_gps () {
98- gps_active = false ;
99- // _nmea->begin();
100- // this init sequence should be better
101- // comes from seeed examples and deals with all gps pins
102- // pinMode(GPS_EN, OUTPUT);
103- // digitalWrite(GPS_EN, HIGH);
104- // delay(10);
105- // pinMode(GPS_VRTC_EN, OUTPUT);
106- // digitalWrite(GPS_VRTC_EN, HIGH);
107- // delay(10);
108-
109- // pinMode(GPS_RESET, OUTPUT);
110- // digitalWrite(GPS_RESET, HIGH);
111- // delay(10);
112- // digitalWrite(GPS_RESET, LOW);
113-
114- // pinMode(GPS_SLEEP_INT, OUTPUT);
115- // digitalWrite(GPS_SLEEP_INT, HIGH);
116- // pinMode(GPS_RTC_INT, OUTPUT);
117- // digitalWrite(GPS_RTC_INT, LOW);
118- // pinMode(GPS_RESETB, INPUT_PULLUP);
119- }
120-
121- void me25ls01SensorManager::sleep_gps () {
122- gps_active = false ;
123- // digitalWrite(GPS_VRTC_EN, HIGH);
124- // digitalWrite(GPS_EN, LOW);
125- // digitalWrite(GPS_RESET, HIGH);
126- // digitalWrite(GPS_SLEEP_INT, HIGH);
127- // digitalWrite(GPS_RTC_INT, LOW);
128- // pinMode(GPS_RESETB, OUTPUT);
129- // digitalWrite(GPS_RESETB, LOW);
130- // _nmea->stop();
131- }
132-
133- void me25ls01SensorManager::stop_gps () {
134- gps_active = false ;
135- // digitalWrite(GPS_VRTC_EN, LOW);
136- // digitalWrite(GPS_EN, LOW);
137- // digitalWrite(GPS_RESET, HIGH);
138- // digitalWrite(GPS_SLEEP_INT, HIGH);
139- // digitalWrite(GPS_RTC_INT, LOW);
140- // pinMode(GPS_RESETB, OUTPUT);
141- // digitalWrite(GPS_RESETB, LOW);
142- // //_nmea->stop();
143- }
144-
145-
146- bool me25ls01SensorManager::begin () {
147- // init GPS
148- Serial1.begin (115200 );
149-
150- // make sure gps pin are off
151- // digitalWrite(GPS_VRTC_EN, LOW);
152- // digitalWrite(GPS_RESET, LOW);
153- // digitalWrite(GPS_SLEEP_INT, LOW);
154- // digitalWrite(GPS_RTC_INT, LOW);
155- // pinMode(GPS_RESETB, OUTPUT);
156- // digitalWrite(GPS_RESETB, LOW);
157-
158- return true ;
159- }
160-
161- bool me25ls01SensorManager::querySensors (uint8_t requester_permissions, CayenneLPP& telemetry) {
162- if (requester_permissions & TELEM_PERM_LOCATION) { // does requester have permission?
163- // telemetry.addGPS(TELEM_CHANNEL_SELF, node_lat, node_lon, node_altitude);
164- }
165- if (requester_permissions & TELEM_PERM_ENVIRONMENT) {
166- // telemetry.addLuminosity(TELEM_CHANNEL_SELF, t1000e_get_light());
167- // telemetry.addTemperature(TELEM_CHANNEL_SELF, t1000e_get_temperature());
168- }
169- return true ;
170- }
171-
172- void me25ls01SensorManager::loop () {
173- static long next_gps_update = 0 ;
174-
175- // _nmea->loop();
176-
177- // if (millis() > next_gps_update) {
178- // if (_nmea->isValid()) {
179- // node_lat = ((double)_nmea->getLatitude())/1000000.;
180- // node_lon = ((double)_nmea->getLongitude())/1000000.;
181- // node_altitude = ((double)_nmea->getAltitude()) / 1000.0;
182- // //Serial.printf("lat %f lon %f\r\n", _lat, _lon);
183- // }
184- // next_gps_update = millis() + 1000;
185- // }
186- }
187-
188- int me25ls01SensorManager::getNumSettings () const { return 1 ; } // just one supported: "gps" (power switch)
189-
190- const char * me25ls01SensorManager::getSettingName (int i) const {
191- return i == 0 ? " gps" : NULL ;
192- }
193- const char * me25ls01SensorManager::getSettingValue (int i) const {
194- if (i == 0 ) {
195- return gps_active ? " 1" : " 0" ;
196- }
197- return NULL ;
198- }
199- bool me25ls01SensorManager::setSettingValue (const char * name, const char * value) {
200- if (strcmp (name, " gps" ) == 0 ) {
201- // if (strcmp(value, "0") == 0) {
202- // sleep_gps(); // sleep for faster fix !
203- // } else {
204- // start_gps();
205- // }
206- return true ;
207- }
208- return false ; // not supported
209- }
98+ }
0 commit comments