适配autoota 函数
authorSnickerSun <snickersun@163.com>
Tue, 22 Oct 2024 09:56:20 +0000 (17:56 +0800)
committerSnickerSun <snickersun@163.com>
Tue, 22 Oct 2024 09:56:20 +0000 (17:56 +0800)
code/sdk/application/wearable/auto_ota/auto_ota_service.c
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp
code/sdk/application/wearable/fd230app/nativeui/safemodemanager/src/SafeModeManagerModel.cpp
code/sdk/application/wearable/service/msg_center/src/ota/msg_center_ota.cpp

index 3f7d962..aeeeda3 100644 (file)
@@ -43,7 +43,7 @@ extern "C" {
 #define AUTO_OTA_ACL_CONN_DELAY (6*1000) /* 客户可定制 */
 #define AUTO_OTA_SPP_RECONN_TIMEOUT 10000 /* 客户可定制 */
 #define AUTO_OTA_WAIT_PREPARE_TIMEOUT (2 * 1000) /* 客户可定制, 用于更换升级包场景 */
-#define AUTO_OTA_DEV_NAME_PREFIX "Watch" /* 客户基于自己产品定义修改bt name前缀,用于黑名单管理 */
+#define AUTO_OTA_DEV_NAME_PREFIX "WATCH" /* 客户基于自己产品定义修改bt name前缀,用于黑名单管理 */
 #define AUTO_OTA_DEV_NAME_PREFIX_LEN 5
 #define AUTO_OTA_DST_UPG_VER_PATH "/user/dst_ver.txt"
 
@@ -552,8 +552,7 @@ void auto_ota_task_main(void)
             continue;
         }
         osDelay(AUTO_OTA_OPRATE_DELAY_MS);
-        WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "gap_remove_all_pairs ok\r\n");
-
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "gap_remove_all_pairs ok and auto_ota_bt_start_discovery\r\n");
         /* scan */
         if (auto_ota_bt_start_discovery() != true) {
             osDelay(AUTO_OTA_DELAY_MS);
@@ -562,11 +561,13 @@ void auto_ota_task_main(void)
         }
 
         osDelay(AUTO_OTA_SCAN_WAIT_TIME); /* 保证能扫到设备 */
-
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "gap_br_cancel_discovery \r\n");
         (void)gap_br_cancel_discovery();
         osDelay(AUTO_OTA_UPDATE_RSSI_WAIT_TIME);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "auto_ota_sort_found_dev_list \r\n");
         auto_ota_sort_found_dev_list(); /* 根据rssi降序排序 */
         /* connect */
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "auto_ota_get_top_dev_to_connect \r\n");
         if (auto_ota_get_top_dev_to_connect() != true) {
             osDelay(AUTO_OTA_DELAY_MS);
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "connect fail, auto retry...\r\n");
@@ -576,6 +577,7 @@ void auto_ota_task_main(void)
         osSemaphoreAcquire(g_auto_ota_transmit_done_sem, AUTO_OTA_SEM_TIMEOUT);
 
         /* clean, spp资源内部释放 */
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "spp_disconnect \r\n");
         spp_disconnect(0);
         /* 删除配对时会disconnect ACL */
         if (gap_remove_all_pairs() != true) {
index ddf86af..50cdc70 100644 (file)
@@ -168,7 +168,16 @@ static int bluetooth_init_all(void)
 \r
     InitBluetoothInfo();\r
 \r
+\r
+    /********************br init************************/\r
     BtInitCallBacks();\r
+    uapi_pbap_pce_reg_callback();\r
+    BtA2dpInit();\r
+    #ifdef SUPPORT_AUTO_OTA_SERVER\r
+    BtInitSpp();\r
+    #endif\r
+\r
+    /*******************ble init ****************/\r
     wrapper_ble_register();\r
 #ifdef SUPPORT_ALIPAY_SEC\r
     wrapper_gatts_clear_service(); //Alipay BLE\r
@@ -182,9 +191,7 @@ static int bluetooth_init_all(void)
     \r
     // BtInitCallBacksEx(); //BLE\r
     // BtInitGatts(); //BLE \r
-    uapi_pbap_pce_reg_callback();\r
-    // BtInitSpp();\r
-    BtA2dpInit();\r
+\r
 \r
     //start reg ble server\r
     wrapper_gatts_service_start(); \r
index 3277a55..522ff9c 100644 (file)
 #include <string>  
 
 extern "C" {
-#include "build_version.h"
-const char *get_version_string(void);
+// #include "build_version.h"
+// const char *get_version_string(void);
 
 #include "battery_hal.h"
 #include "build_version.h"
 extern uint8_t battery_get_voltage(float *voltage);
-const char *get_version_string(void);
+// const char *get_version_string(void);
 
 bool resfile_checksum_thread(void);
 }
index 256c5c1..0663f0a 100644 (file)
@@ -3,7 +3,6 @@
  * Description: ota upgrade handle.
  * This file should be changed only infrequently and with great care.
  */
-#include "build_version.h"
 #include "securec.h"
 #include "soc_osal.h"
 #include "diag_service.h"
 #ifdef SUPPORT_AUTO_OTA
 #include "auto_ota_service.h"
 #endif
-#include "custom_utils.h"
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#include "custom_utils.h"
+#include "build_version.h"
+
 #ifdef SUPPORT_AUTO_OTA
 extern osSemaphoreId_t g_auto_ota_transmit_done_sem;
 extern uint8_t g_auto_ota_mac_tmp[];
@@ -192,10 +193,30 @@ errcode_t msg_center_ota_rec_upg_start(uint8_t cmd_id, uint8_t type, void *usr_d
 }
 
 /* 客户逻辑实现 */
-__attribute__((weak)) errcode_t msg_center_ota_upg_version_check(char *dst_ver, char *src_ver)
+errcode_t msg_center_ota_upg_version_check(char *dst_ver, char *src_ver)
 {
     unused(dst_ver);
     unused(src_ver);
+
+    if (dst_ver == NULL || src_ver == NULL)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "upg version check default failed! for NULL input \r\n");
+        return ERRCODE_FAIL;
+    }
+    int dst_len = strlen(dst_ver);
+    int src_len = strlen(src_ver);
+    if (dst_len != src_len )
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "upg version check default failed! %s != %s \r\n",dst_ver,src_ver);
+        return ERRCODE_FAIL;
+    }
+    
+     /* 客户版本号校验逻辑 */
+    if (strncmp(dst_ver,src_ver,dst_len) != 0)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "upg version check default failed! %s != %s \r\n",dst_ver,src_ver);
+        return ERRCODE_FAIL;
+    }
     /* 客户版本号校验逻辑 */
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "upg version check default pass!\r\n");
     /* 客户检查本地剩余空间是否足够容纳升级包大小 */
@@ -203,13 +224,6 @@ __attribute__((weak)) errcode_t msg_center_ota_upg_version_check(char *dst_ver,
     return ERRCODE_SUCC;
 }
 
-__attribute__((weak)) char * msg_center_ota_get_src_ver(void)
-{
-    char *src_ver = "XXX_YYY";
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "get src version : %s\r\n", src_ver);
-    return src_ver;
-}
-
 errcode_t msg_center_ota_rec_upg_check(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len)
 {
     uint8_t tl_len = msg_center_get_tlv_tl_len(usr_data);
@@ -229,8 +243,8 @@ errcode_t msg_center_ota_rec_upg_check(uint8_t cmd_id, uint8_t type, void *usr_d
     (void)memcpy_s(dst_ver, payload_len, tlv_payload, payload_len);
     dst_ver[payload_len] = '\0';
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "rec_dst_version: %s\r\n", dst_ver);
-
-    ret = msg_center_ota_upg_version_check(dst_ver, msg_center_ota_get_src_ver());
+    // ret = msg_center_ota_upg_version_check(dst_ver, msg_center_ota_get_src_ver());
+    ret = msg_center_ota_upg_version_check(dst_ver, (char*) get_version_string());
     if (ret != ERRCODE_SUCC) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "upg version check fail, no need upg!\r\n");
         res = msg_center_send_data(cmd_id, MSGCENTER_TYPE_ID_OTA_UPG_CHECK_RESULT, &check_fail, sizeof(check_fail));