OTA: Call esp_matter_ota_requestor_start after connected to a network

This commit is contained in:
WanqQixiang
2022-09-05 19:15:44 +08:00
parent 1961904555
commit 5e9596709f
6 changed files with 44 additions and 4 deletions
+29 -4
View File
@@ -714,6 +714,33 @@ static void esp_matter_chip_init_task(intptr_t context)
xTaskNotifyGive(task_to_notify);
}
static void device_callback_for_ota(const ChipDeviceEvent * event, intptr_t arg)
{
static bool is_ota_requestor_start = false;
switch (event->Type)
{
case chip::DeviceLayer::DeviceEventType::kInterfaceIpAddressChanged:
if (event->InterfaceIpAddressChanged.Type == chip::DeviceLayer::InterfaceIpChangeType::kIpV6_Assigned) {
if (!is_ota_requestor_start) {
esp_matter_ota_requestor_start();
is_ota_requestor_start = true;
}
}
break;
#if CHIP_DEVICE_CONFIG_ENABLE_THREAD
case chip::DeviceLayer::DeviceEventType::kThreadConnectivityChange:
if (!is_ota_requestor_start &&
event->ThreadConnectivityChange.Result == chip::DeviceLayer::ConnectivityChange::kConnectivity_Established) {
esp_matter_ota_requestor_start();
is_ota_requestor_start = true;
}
#endif
break;
default:
break;
}
}
static esp_err_t chip_init(event_callback_t callback)
{
if (chip::Platform::MemoryInit() != CHIP_NO_ERROR) {
@@ -731,6 +758,7 @@ static esp_err_t chip_init(event_callback_t callback)
ESP_LOGE(TAG, "Failed to launch Matter main task");
return ESP_FAIL;
}
PlatformMgr().AddEventHandler(device_callback_for_ota, static_cast<intptr_t>(NULL));
PlatformMgr().AddEventHandler(callback, static_cast<intptr_t>(NULL));
#if CHIP_DEVICE_CONFIG_ENABLE_THREAD
if (ThreadStackMgr().InitThreadStack() != CHIP_NO_ERROR) {
@@ -766,16 +794,13 @@ static esp_err_t chip_init(event_callback_t callback)
esp_err_t start(event_callback_t callback)
{
esp_err_t ota_err = esp_matter_ota_requestor_init();
esp_matter_ota_requestor_init();
esp_err_t err = chip_init(callback);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Error initializing matter");
}
if ((ota_err == ESP_OK) && (err == ESP_OK)) {
esp_matter_ota_requestor_start();
}
return err;
}
+3
View File
@@ -18,6 +18,9 @@ if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
endif()
endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
set(PROJECT_VER "v1.0")
set(PROJECT_VER_NUMBER 1)
set(ESP_MATTER_PATH $ENV{ESP_MATTER_PATH})
set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip)
set(ZAP_GENERATED_PATH ${CMAKE_CURRENT_LIST_DIR}/main/zap-generated)
+3
View File
@@ -20,6 +20,9 @@ if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
endif()
endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
set(PROJECT_VER "v1.0")
set(PROJECT_VER_NUMBER 1)
set(ESP_MATTER_PATH $ENV{ESP_MATTER_PATH})
set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip)
set(ZAP_GENERATED_PATH ${CMAKE_CURRENT_LIST_DIR}/main/zap-generated)
+3
View File
@@ -18,6 +18,9 @@ if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
endif()
endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
set(PROJECT_VER "v1.0")
set(PROJECT_VER_NUMBER 1)
set(ESP_MATTER_PATH $ENV{ESP_MATTER_PATH})
set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip)
set(ZAP_GENERATED_PATH ${CMAKE_CURRENT_LIST_DIR}/main/zap-generated)
+3
View File
@@ -20,6 +20,9 @@ if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
endif()
endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
set(PROJECT_VER "v1.0")
set(PROJECT_VER_NUMBER 1)
set(ESP_MATTER_PATH $ENV{ESP_MATTER_PATH})
set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip)
set(ZAP_GENERATED_PATH ${CMAKE_CURRENT_LIST_DIR}/main/zap-generated)
+3
View File
@@ -17,6 +17,9 @@ if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
endif()
endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
set(PROJECT_VER "v1.0")
set(PROJECT_VER_NUMBER 1)
set(ESP_MATTER_PATH $ENV{ESP_MATTER_PATH})
set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip)
set(ZAP_GENERATED_PATH ${CMAKE_CURRENT_LIST_DIR}/main/zap-generated)