mirror of
https://github.com/espressif/esp-matter.git
synced 2026-04-27 19:13:13 +00:00
OTA: Call esp_matter_ota_requestor_start after connected to a network
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user