#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"
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);
}
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");
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) {
\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
\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
* 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[];
}
/* 客户逻辑实现 */
-__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");
/* 客户检查本地剩余空间是否足够容纳升级包大小 */
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);
(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));