Parse sync response from server
This commit is contained in:
central_backend/src
esp32_device
@ -21,6 +21,8 @@ void app_main(void)
|
||||
|
||||
ESP_LOGI(TAG, "SolarEnergy WT32-ETH01 device");
|
||||
|
||||
// TODO : turn off all relays
|
||||
|
||||
// Initialize storage
|
||||
if (storage_init() == false)
|
||||
{
|
||||
@ -167,22 +169,40 @@ void app_main(void)
|
||||
// Main loop
|
||||
ESP_LOGI(TAG, "Starting main loop");
|
||||
|
||||
// TODO : implement more properly
|
||||
size_t fails = 0;
|
||||
while (true)
|
||||
{
|
||||
if (!secure_api_sync_device())
|
||||
sync_response *res = secure_api_sync_device();
|
||||
if (!res)
|
||||
{
|
||||
fails += 1;
|
||||
ESP_LOGE(TAG, "Failed to synchronise device!");
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGI(TAG, "Successfully synchronised device!");
|
||||
|
||||
// Safely turn off all relays after a given number of failures
|
||||
if (fails > 5)
|
||||
{
|
||||
ESP_LOGE(TAG, "Many failures, will stop all relays...");
|
||||
// TODO : turn off all relays
|
||||
}
|
||||
|
||||
// Restart the card after too much failures
|
||||
if (fails > 10)
|
||||
{
|
||||
ESP_LOGE(TAG, "Too many failures, will try to reboot in 3 secs...");
|
||||
system_sleep(3);
|
||||
reboot();
|
||||
}
|
||||
|
||||
system_sleep(SYNC_TIME_INTERVAL);
|
||||
continue;
|
||||
}
|
||||
|
||||
system_sleep(10);
|
||||
// TODO : apply sync
|
||||
sync_response_print(res);
|
||||
|
||||
sync_response_free(res);
|
||||
system_sleep(SYNC_TIME_INTERVAL);
|
||||
}
|
||||
|
||||
system_sleep(120);
|
||||
|
||||
reboot();
|
||||
}
|
||||
|
Reference in New Issue
Block a user