#pragma once #define RADIOLIB_STATIC_ONLY 1 #include #include #include #include #include #include #ifdef DISPLAY_CLASS #include "NullDisplayDriver.h" #endif #include #include #ifdef DISPLAY_CLASS extern NullDisplayDriver display; #endif class WIOE5Board : public STM32Board { public: void begin() override { STM32Board::begin(); pinMode(LED_RED, OUTPUT); digitalWrite(LED_RED, HIGH); pinMode(USER_BTN, INPUT_PULLUP); } const char* getManufacturerName() const override { return "Seeed Wio E5 mini"; } uint16_t getBattMilliVolts() override { analogReadResolution(12); uint32_t raw = 0; for (int i=0; i<8;i++) { raw += analogRead(PIN_A3); } return ((double)raw) * 1.73 * 5 * 1000 / 8 / 4096; } }; 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 WIOE5SensorManager sensors; bool radio_init(); mesh::LocalIdentity radio_new_identity();