Skip to content

Commit c8da793

Browse files
Fixes to Rainmaker OTA Issues (#7324)
* Added OTA Event Handlers * Overrided verifyRollbackLater Method Co-authored-by: Rodrigo Garcia <[email protected]>
1 parent e01f175 commit c8da793

File tree

1 file changed

+35
-3
lines changed

1 file changed

+35
-3
lines changed

Diff for: libraries/RainMaker/src/RMaker.cpp

+35-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
bool wifiLowLevelInit(bool persistent);
77
static esp_err_t err;
88

9+
extern "C" bool verifyRollbackLater() { return true; }
10+
911
static void event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
1012
{
1113
if (event_base == RMAKER_EVENT) {
@@ -25,6 +27,33 @@ static void event_handler(void *arg, esp_event_base_t event_base, int32_t event_
2527
default:
2628
log_i("Unhandled RainMaker Event:");
2729
}
30+
} else if (event_base == RMAKER_OTA_EVENT) {
31+
if(event_data == NULL){
32+
event_data = (void*)"";
33+
}
34+
switch(event_id) {
35+
case RMAKER_OTA_EVENT_STARTING:
36+
log_i("Starting OTA : %s", (char*)event_data);
37+
break;
38+
case RMAKER_OTA_EVENT_IN_PROGRESS:
39+
log_i("OTA in progress : %s", (char*)event_data);
40+
break;
41+
case RMAKER_OTA_EVENT_SUCCESSFUL:
42+
log_i("OTA Successful : %s", (char*)event_data);
43+
break;
44+
case RMAKER_OTA_EVENT_FAILED:
45+
log_i("OTA Failed : %s", (char*)event_data);
46+
break;
47+
case RMAKER_OTA_EVENT_DELAYED:
48+
log_i("OTA Delayed : %s", (char*)event_data);
49+
break;
50+
case RMAKER_OTA_EVENT_REJECTED:
51+
log_i("OTA Rejected : %s", (char*)event_data);
52+
break;
53+
default:
54+
log_i("Unhandled OTA Event");
55+
break;
56+
}
2857
}
2958
}
3059

@@ -39,6 +68,7 @@ Node RMakerClass::initNode(const char *name, const char *type)
3968
Node node;
4069
esp_rmaker_node_t *rnode = NULL;
4170
esp_event_handler_register(RMAKER_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL);
71+
esp_event_handler_register(RMAKER_OTA_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL);
4272
rnode = esp_rmaker_node_init(&rainmaker_cfg, name, type);
4373
if (!rnode){
4474
log_e("Node init failed");
@@ -104,9 +134,11 @@ esp_err_t RMakerClass::enableTZService()
104134

105135
esp_err_t RMakerClass::enableOTA(ota_type_t type, const char *cert)
106136
{
107-
esp_rmaker_ota_config_t ota_config;
108-
ota_config.server_cert = cert;
109-
ota_config.ota_cb = NULL;
137+
esp_rmaker_ota_config_t ota_config = {
138+
.ota_cb = NULL,
139+
.ota_diag = NULL,
140+
.server_cert = cert,
141+
};
110142
err = esp_rmaker_ota_enable(&ota_config, type);
111143
if(err != ESP_OK) {
112144
log_e("OTA enable failed");

0 commit comments

Comments
 (0)