Merge branch 'dev' of https://github.com/ripplebiz/MeshCore into mymesh-refactor2

This commit is contained in:
hank 2025-06-01 09:34:09 -07:00
commit c13f676e57
9 changed files with 90 additions and 17 deletions

View file

@ -9,7 +9,7 @@ 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);
MicroNMEALocationProvider nmea = MicroNMEALocationProvider(Serial1, &rtc_clock);
T1000SensorManager sensors = T1000SensorManager(nmea);
#ifdef DISPLAY_CLASS

View file

@ -10,6 +10,8 @@ build_flags = ${stm32_base.build_flags}
-I variants/wio-e5-mini
build_src_filter = ${stm32_base.build_src_filter}
+<../variants/wio-e5-mini>
lib_deps = ${stm32_base.lib_deps}
finitespace/BME280 @ ^3.0.0
[env:wio-e5-mini-repeater]
extends = lora_e5_mini

View file

@ -18,20 +18,14 @@ static const Module::RfSwitchMode_t rfswitch_table[] = {
};
VolatileRTCClock rtc_clock;
SensorManager sensors;
WIOE5SensorManager sensors;
#ifndef LORA_CR
#define LORA_CR 5
#endif
bool radio_init() {
// rtc_clock.begin(Wire);
// #ifdef SX126X_DIO3_TCXO_VOLTAGE
// float tcxo = SX126X_DIO3_TCXO_VOLTAGE;
// #else
// float tcxo = 1.6f;
// #endif
Wire.begin();
radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);
@ -71,3 +65,26 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
bool WIOE5SensorManager::querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) {
if (!has_bme) return false;
float temp(NAN), hum(NAN), pres(NAN);
BME280::TempUnit tempUnit(BME280::TempUnit_Celsius);
BME280::PresUnit presUnit(BME280::PresUnit_hPa);
bme.read(pres, temp, hum, tempUnit, presUnit);
telemetry.addTemperature(TELEM_CHANNEL_SELF, temp);
telemetry.addRelativeHumidity(TELEM_CHANNEL_SELF, hum);
telemetry.addBarometricPressure(TELEM_CHANNEL_SELF, pres);
return true;
}
bool WIOE5SensorManager::begin() {
has_bme = bme.begin();
return has_bme;
}

View file

@ -8,6 +8,9 @@
#include <helpers/ArduinoHelpers.h>
#include <helpers/SensorManager.h>
#include <BME280I2C.h>
#include <Wire.h>
class WIOE5Board : public STM32Board {
public:
const char* getManufacturerName() const override {
@ -21,10 +24,20 @@ public:
}
};
class WIOE5SensorManager : public SensorManager {
BME280I2C bme;
bool has_bme = false;
public:
WIOE5SensorManager() {}
bool begin() override;
bool querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) override;
};
extern WIOE5Board board;
extern WRAPPER_CLASS radio_driver;
extern VolatileRTCClock rtc_clock;
extern SensorManager sensors;
extern WIOE5SensorManager sensors;
bool radio_init();
uint32_t radio_get_rng_seed();