@@ -338,6 +338,9 @@ static esp_err_t zb_ota_upgrade_status_handler(const esp_zb_zcl_ota_upgrade_valu
338
338
switch (message->upgrade_status ) {
339
339
case ESP_ZB_ZCL_OTA_UPGRADE_STATUS_START:
340
340
log_i (" Zigbee - OTA upgrade start" );
341
+ for (std::list<ZigbeeEP *>::iterator it = Zigbee.ep_objects .begin (); it != Zigbee.ep_objects .end (); ++it) {
342
+ (*it)->zbOTAState (true ); // Notify that OTA is active
343
+ }
341
344
start_time = esp_timer_get_time ();
342
345
s_ota_partition = esp_ota_get_next_update_partition (NULL );
343
346
assert (s_ota_partition);
@@ -348,6 +351,9 @@ static esp_err_t zb_ota_upgrade_status_handler(const esp_zb_zcl_ota_upgrade_valu
348
351
#endif
349
352
if (ret != ESP_OK) {
350
353
log_e (" Zigbee - Failed to begin OTA partition, status: %s" , esp_err_to_name (ret));
354
+ for (std::list<ZigbeeEP *>::iterator it = Zigbee.ep_objects .begin (); it != Zigbee.ep_objects .end (); ++it) {
355
+ (*it)->zbOTAState (false ); // Notify that OTA is no longer active
356
+ }
351
357
return ret;
352
358
}
353
359
break ;
@@ -361,6 +367,9 @@ static esp_err_t zb_ota_upgrade_status_handler(const esp_zb_zcl_ota_upgrade_valu
361
367
ret = esp_element_ota_data (total_size, message->payload , message->payload_size , &payload, &payload_size);
362
368
if (ret != ESP_OK) {
363
369
log_e (" Zigbee - Failed to element OTA data, status: %s" , esp_err_to_name (ret));
370
+ for (std::list<ZigbeeEP *>::iterator it = Zigbee.ep_objects .begin (); it != Zigbee.ep_objects .end (); ++it) {
371
+ (*it)->zbOTAState (false ); // Notify that OTA is no longer active
372
+ }
364
373
return ret;
365
374
}
366
375
#if CONFIG_ZB_DELTA_OTA
@@ -370,6 +379,9 @@ static esp_err_t zb_ota_upgrade_status_handler(const esp_zb_zcl_ota_upgrade_valu
370
379
#endif
371
380
if (ret != ESP_OK) {
372
381
log_e (" Zigbee - Failed to write OTA data to partition, status: %s" , esp_err_to_name (ret));
382
+ for (std::list<ZigbeeEP *>::iterator it = Zigbee.ep_objects .begin (); it != Zigbee.ep_objects .end (); ++it) {
383
+ (*it)->zbOTAState (false ); // Notify that OTA is no longer active
384
+ }
373
385
return ret;
374
386
}
375
387
}
@@ -389,6 +401,9 @@ static esp_err_t zb_ota_upgrade_status_handler(const esp_zb_zcl_ota_upgrade_valu
389
401
message->ota_header .file_version , message->ota_header .manufacturer_code , message->ota_header .image_type , message->ota_header .image_size ,
390
402
(esp_timer_get_time () - start_time) / 1000
391
403
);
404
+ for (std::list<ZigbeeEP *>::iterator it = Zigbee.ep_objects .begin (); it != Zigbee.ep_objects .end (); ++it) {
405
+ (*it)->zbOTAState (false ); // Notify that OTA is no longer active
406
+ }
392
407
#if CONFIG_ZB_DELTA_OTA
393
408
ret = esp_delta_ota_end (s_ota_handle);
394
409
#else
0 commit comments