Forráskód Böngészése

Use EnvironmentSensorManager in Minewsemi variant

Normunds Gavars 1 éve
szülő
commit
af2628bb00

+ 9 - 120
variants/minewsemi_me25ls01/target.cpp

@@ -1,7 +1,5 @@
 #include <Arduino.h>
-//#include "t1000e_sensors.h"
 #include "target.h"
-#include <helpers/sensors/MicroNMEALocationProvider.h>
 
 MinewsemiME25LS01Board board;
 
@@ -10,9 +8,14 @@ RADIO_CLASS radio = new Module(P_LORA_NSS, P_LORA_DIO_1, P_LORA_RESET, P_LORA_BU
 WRAPPER_CLASS radio_driver(radio, board);
 
 VolatileRTCClock rtc_clock;
-MicroNMEALocationProvider nmea = MicroNMEALocationProvider(Serial1, &rtc_clock);
-//T1000SensorManager sensors = T1000SensorManager(nmea);
-me25ls01SensorManager sensors = me25ls01SensorManager(nmea);
+extern EnvironmentSensorManager sensors;
+#if ENV_INCLUDE_GPS
+  #include <helpers/sensors/MicroNMEALocationProvider.h>
+  MicroNMEALocationProvider nmea = MicroNMEALocationProvider(Serial1, &rtc_clock);
+  EnvironmentSensorManager sensors = EnvironmentSensorManager(nmea);
+#else
+  EnvironmentSensorManager sensors;
+#endif
 
 #ifdef DISPLAY_CLASS
   NullDisplayDriver display;
@@ -92,118 +95,4 @@ void radio_set_tx_power(uint8_t dbm) {
 mesh::LocalIdentity radio_new_identity() {
   RadioNoiseListener rng(radio);
   return mesh::LocalIdentity(&rng);  // create new random identity
-}
-
-void me25ls01SensorManager::start_gps() {
-  gps_active = false;
-  //_nmea->begin();
-  // this init sequence should be better 
-  // comes from seeed examples and deals with all gps pins
-  // pinMode(GPS_EN, OUTPUT);
-  // digitalWrite(GPS_EN, HIGH);
-  // delay(10);
-  // pinMode(GPS_VRTC_EN, OUTPUT);
-  // digitalWrite(GPS_VRTC_EN, HIGH);
-  // delay(10);
-       
-  // pinMode(GPS_RESET, OUTPUT);
-  // digitalWrite(GPS_RESET, HIGH);
-  // delay(10);
-  // digitalWrite(GPS_RESET, LOW);
-       
-  // pinMode(GPS_SLEEP_INT, OUTPUT);
-  // digitalWrite(GPS_SLEEP_INT, HIGH);
-  // pinMode(GPS_RTC_INT, OUTPUT);
-  // digitalWrite(GPS_RTC_INT, LOW);
-  // pinMode(GPS_RESETB, INPUT_PULLUP);
-}
-
-void me25ls01SensorManager::sleep_gps() {
-  gps_active = false;
-  // digitalWrite(GPS_VRTC_EN, HIGH);
-  // digitalWrite(GPS_EN, LOW);
-  // digitalWrite(GPS_RESET, HIGH);
-  // digitalWrite(GPS_SLEEP_INT, HIGH);
-  // digitalWrite(GPS_RTC_INT, LOW);
-  // pinMode(GPS_RESETB, OUTPUT);
-  // digitalWrite(GPS_RESETB, LOW);
-  //_nmea->stop();
-}
-
-void me25ls01SensorManager::stop_gps() {
-  gps_active = false;
-  // digitalWrite(GPS_VRTC_EN, LOW);
-  // digitalWrite(GPS_EN, LOW);
-  // digitalWrite(GPS_RESET, HIGH);
-  // digitalWrite(GPS_SLEEP_INT, HIGH);
-  // digitalWrite(GPS_RTC_INT, LOW);
-  // pinMode(GPS_RESETB, OUTPUT);
-  // digitalWrite(GPS_RESETB, LOW);
-  // //_nmea->stop();
-}
-
-
-bool me25ls01SensorManager::begin() {
-  // init GPS
-  Serial1.begin(115200);
-
-  // make sure gps pin are off
-  // digitalWrite(GPS_VRTC_EN, LOW);
-  // digitalWrite(GPS_RESET, LOW);
-  // digitalWrite(GPS_SLEEP_INT, LOW);
-  // digitalWrite(GPS_RTC_INT, LOW);
-  // pinMode(GPS_RESETB, OUTPUT);
-  // digitalWrite(GPS_RESETB, LOW);
-
-  return true;
-}
-
-bool me25ls01SensorManager::querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) {
-  if (requester_permissions & TELEM_PERM_LOCATION) {   // does requester have permission?
-    //telemetry.addGPS(TELEM_CHANNEL_SELF, node_lat, node_lon, node_altitude);
-  }
-  if (requester_permissions & TELEM_PERM_ENVIRONMENT) {
-    //telemetry.addLuminosity(TELEM_CHANNEL_SELF, t1000e_get_light());
-    //telemetry.addTemperature(TELEM_CHANNEL_SELF, t1000e_get_temperature());
-  }
-  return true;
-}
-
-void me25ls01SensorManager::loop() {
-  static long next_gps_update = 0;
-
-  //_nmea->loop();
-
-  // if (millis() > next_gps_update) {
-  //   if (_nmea->isValid()) {
-  //     node_lat = ((double)_nmea->getLatitude())/1000000.;
-  //     node_lon = ((double)_nmea->getLongitude())/1000000.;
-  //     node_altitude = ((double)_nmea->getAltitude()) / 1000.0;
-  //     //Serial.printf("lat %f lon %f\r\n", _lat, _lon);
-  //   }
-  //   next_gps_update = millis() + 1000;
-  //}
-}
-
-int me25ls01SensorManager::getNumSettings() const { return 1; }  // just one supported: "gps" (power switch)
-
-const char* me25ls01SensorManager::getSettingName(int i) const {
-  return i == 0 ? "gps" : NULL;
-}
-const char* me25ls01SensorManager::getSettingValue(int i) const {
-  if (i == 0) {
-    return gps_active ? "1" : "0";
-  }
-  return NULL;
-}
-bool me25ls01SensorManager::setSettingValue(const char* name, const char* value) {
-  if (strcmp(name, "gps") == 0) {
-    // if (strcmp(value, "0") == 0) {
-    //   sleep_gps(); // sleep for faster fix !
-    // } else {
-    //   start_gps();
-    // }
-    return true;
-  }
-  return false;  // not supported
-}
+}

+ 2 - 19
variants/minewsemi_me25ls01/target.h

@@ -8,28 +8,11 @@
 #include <helpers/ArduinoHelpers.h>
 #include <helpers/SensorManager.h>
 #include <helpers/sensors/LocationProvider.h>
+#include <helpers/sensors/EnvironmentSensorManager.h>
 #ifdef DISPLAY_CLASS
   #include "NullDisplayDriver.h"
 #endif
 
-class me25ls01SensorManager: public SensorManager {
-  bool gps_active = false;
-  LocationProvider * _nmea;
-
-  void start_gps();
-  void sleep_gps();
-  void stop_gps();
-public:
-  me25ls01SensorManager(LocationProvider &nmea): _nmea(&nmea) { }
-  bool begin() override;
-  bool querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) override;
-  void loop() override;
-  int getNumSettings() const override;
-  const char* getSettingName(int i) const override;
-  const char* getSettingValue(int i) const override;
-  bool setSettingValue(const char* name, const char* value) override;
-};
-
 #ifdef DISPLAY_CLASS
   extern NullDisplayDriver display;
 #endif
@@ -37,7 +20,7 @@ public:
 extern MinewsemiME25LS01Board board;
 extern WRAPPER_CLASS radio_driver;
 extern VolatileRTCClock rtc_clock;
-extern me25ls01SensorManager sensors;
+extern EnvironmentSensorManager sensors;
 
 bool radio_init();
 uint32_t radio_get_rng_seed();

+ 0 - 6
variants/minewsemi_me25ls01/variant.cpp

@@ -1,9 +1,3 @@
-/*
- * variant.cpp
- * Copyright (C) 2023 Seeed K.K.
- * MIT License
- */
-
 #include "variant.h"
 #include "wiring_constants.h"
 #include "wiring_digital.h"

+ 0 - 6
variants/minewsemi_me25ls01/variant.h

@@ -1,9 +1,3 @@
-/*
- * variant.h
- * Copyright (C) 2023 Seeed K.K.
- * MIT License
- */
-
 #pragma once
 
 #include "WVariant.h"