Skip to content

Commit af2628b

Browse files
author
Normunds Gavars
committed
Use EnvironmentSensorManager in Minewsemi variant
1 parent 6f94c81 commit af2628b

File tree

4 files changed

+11
-151
lines changed

4 files changed

+11
-151
lines changed
Lines changed: 9 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
#include <Arduino.h>
2-
//#include "t1000e_sensors.h"
32
#include "target.h"
4-
#include <helpers/sensors/MicroNMEALocationProvider.h>
53

64
MinewsemiME25LS01Board board;
75

@@ -10,9 +8,14 @@ RADIO_CLASS radio = new Module(P_LORA_NSS, P_LORA_DIO_1, P_LORA_RESET, P_LORA_BU
108
WRAPPER_CLASS radio_driver(radio, board);
119

1210
VolatileRTCClock 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) {
9295
mesh::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+
}

variants/minewsemi_me25ls01/target.h

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,36 +8,19 @@
88
#include <helpers/ArduinoHelpers.h>
99
#include <helpers/SensorManager.h>
1010
#include <helpers/sensors/LocationProvider.h>
11+
#include <helpers/sensors/EnvironmentSensorManager.h>
1112
#ifdef DISPLAY_CLASS
1213
#include "NullDisplayDriver.h"
1314
#endif
1415

15-
class me25ls01SensorManager: public SensorManager {
16-
bool gps_active = false;
17-
LocationProvider * _nmea;
18-
19-
void start_gps();
20-
void sleep_gps();
21-
void stop_gps();
22-
public:
23-
me25ls01SensorManager(LocationProvider &nmea): _nmea(&nmea) { }
24-
bool begin() override;
25-
bool querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) override;
26-
void loop() override;
27-
int getNumSettings() const override;
28-
const char* getSettingName(int i) const override;
29-
const char* getSettingValue(int i) const override;
30-
bool setSettingValue(const char* name, const char* value) override;
31-
};
32-
3316
#ifdef DISPLAY_CLASS
3417
extern NullDisplayDriver display;
3518
#endif
3619

3720
extern MinewsemiME25LS01Board board;
3821
extern WRAPPER_CLASS radio_driver;
3922
extern VolatileRTCClock rtc_clock;
40-
extern me25ls01SensorManager sensors;
23+
extern EnvironmentSensorManager sensors;
4124

4225
bool radio_init();
4326
uint32_t radio_get_rng_seed();

variants/minewsemi_me25ls01/variant.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
/*
2-
* variant.cpp
3-
* Copyright (C) 2023 Seeed K.K.
4-
* MIT License
5-
*/
6-
71
#include "variant.h"
82
#include "wiring_constants.h"
93
#include "wiring_digital.h"

variants/minewsemi_me25ls01/variant.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
/*
2-
* variant.h
3-
* Copyright (C) 2023 Seeed K.K.
4-
* MIT License
5-
*/
6-
71
#pragma once
82

93
#include "WVariant.h"

0 commit comments

Comments
 (0)