111 bool applyConfigurationFromLedger();
118 bool applySensorConfig();
125 bool applyTimingConfig();
132 bool applyPowerConfig();
137 static void onDefaultSettingsSync(Ledger ledger);
142 static void onDeviceSettingsSync(Ledger ledger);
147 void mergeConfiguration();
154 bool applyMessagingConfig();
161 bool applyModesConfig();
173 bool validateRange(T value, T min, T max,
const String& name);
180 bool hasNonDefaultConfig();
185 Ledger defaultSettingsLedger;
190 Ledger deviceSettingsLedger;
195 Ledger deviceStatusLedger;
200 Ledger deviceDataLedger;
205 LedgerData mergedConfig;
215 String lastPublishedStatus;
223 bool lastApplySuccess;
226 bool pendingStatusPublish;
227 bool pendingConfigApply;
Persistent Data Storage Structures - EEPROM/Retained Memory Management.
bool writeDeviceStatusToCloud()
Write current device configuration to device-status ledger.
Cloud(const Cloud &)=delete
This class is a singleton and cannot be copied.
void setup()
Perform setup operations; call this from global application setup().
bool loadConfigurationFromCloud()
Load and apply configuration from cloud ledgers.
bool publishDataToLedger()
Publish latest sensor data to device-data ledger.
Cloud & operator=(const Cloud &)=delete
This class is a singleton and cannot be copied.
static Cloud * _instance
Singleton instance of this class.
static Cloud & instance()
Gets the singleton instance of this class, allocating it if necessary.
void loop()
Service deferred cloud work; call from main loop.
virtual ~Cloud()
The destructor is protected because the class is a singleton and cannot be deleted.
Cloud()
The constructor is protected because the class is a singleton.
Pinout definitions for the carrier board and sensors.