#pragma once #define RADIOLIB_STATIC_ONLY 1 #include #include #include "T1000eBoard.h" #include #include #include #include #ifdef DISPLAY_CLASS #include "NullDisplayDriver.h" #endif class T1000SensorManager: public SensorManager { bool gps_active = false; LocationProvider * _nmea; void armGpsPowerSavingCycle(); void start_gps(); void sleep_gps(); void stop_gps(); bool telemetryGpsDetected() const override { return true; } bool telemetryGpsActive() const override { return gps_active; } void telemetryGpsStart() override { start_gps(); } void telemetryGpsStop() override { sleep_gps(); } public: T1000SensorManager(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; void setPowerSavingEnabled(bool enabled) override; LocationProvider* getLocationProvider() override { return _nmea; } }; #ifdef DISPLAY_CLASS extern NullDisplayDriver display; #endif extern T1000eBoard board; extern WRAPPER_CLASS radio_driver; extern VolatileRTCClock rtc_clock; extern T1000SensorManager sensors; bool radio_init(); // A Companion must remain serviceable over USB/Bluetooth even if the LR1110 // is temporarily unavailable. This seed keeps the local crypto RNG usable // until the radio recovery path can collect radio noise again. uint32_t radio_fallback_rng_seed(); mesh::LocalIdentity radio_new_identity();