Merge #1568 into sdk602patch0911 from refs/changes/1568/head 1569/target/1
author胡传军 <1224667075@qq.com>
Thu, 26 Dec 2024 08:39:26 +0000 (08:39 +0000)
committer袁清梦 <3449750381@qq.com>
Thu, 26 Dec 2024 08:39:26 +0000 (08:39 +0000)
Code review from 胡传军

* refs/changes/1568/head: (11 commits squashed)

  - 增加pud解码支持长短信解码及英文短信解码

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into 0911

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into 0911

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into 0911

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into 0911

  - 修改按键投票机制,增加GPIO按键单独投票

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into 0911

  - 更新运行日志解析工具

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into 0911

  - 修改因0502指令造成的多次同步数据问题

  - 修改连接参数更新接口,当触发更新后会增加定时器操作,确认修改结果

Signed-off-by: aliyun8003852482 <1224667075@qq.com>
Reviewed-by: Caisking <3449750381@qq.com>
Reviewed-by: 罗正 <1732036298@qq.com>
Reviewed-by: aliyun8003852482 <1224667075@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Reviewed-by: aliyun6865282430 <1624952103@qq.com>
Merged-by: Caisking <3449750381@qq.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1568
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c

index 294fef8..9ef0c5b 100644 (file)
@@ -5604,6 +5604,9 @@ static void UnpairMessCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *total
         sendBleData(value,19);\r
     }\r
 }\r
+\r
+uint8_t is_connect_synchronization_time=0;\r
+\r
 //app发送同步数据结束消息\r
 static void GetSynDataEndCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
 {\r
@@ -5626,7 +5629,20 @@ static void GetSynDataEndCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *to
         sendBleData(value,19);\r
         uapi_save_runtime_log(RUNTIME_LOG_BLE_APP_SYN_END);\r
 \r
-        watch_synchronization_time();\r
+        if(is_connect_synchronization_time)\r
+        {\r
+            watch_synchronization_time();\r
+        }\r
+        else\r
+        {\r
+            if(g_ble_conn_id)\r
+            {\r
+                is_connect_synchronization_time=1;\r
+            }\r
+            \r
+        }\r
+        \r
+\r
 \r
         uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_SLOW);\r
 \r
@@ -8658,6 +8674,9 @@ void free_ble_data_Event(void)//以防断开蓝牙没有释放数据类型
     recvBigDataBufState = false;\r
     sendbigDataBufState = false;\r
 \r
+    is_connect_synchronization_time=0;\r
+\r
+\r
     cancel_recv_file(1);\r
 \r
     for (int i = 0 ; i < MAX_HANDLE_NUM ; i++)\r
index 51ef1ce..164cf13 100644 (file)
@@ -644,6 +644,66 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
     uapi_dev_runtime_set_ble_connect_stat(Bleconnect);\r
 }\r
 \r
+static uint16_t need_update_connect_param=BLE_CONNECT_INTERVAL_HIGH;\r
+\r
+static osTimerId_t ble_connect_timer=NULL;\r
+\r
+static void  ble_connect_Timer_CallBack(int data)\r
+{\r
+    if(get_ble_connect())\r
+    {\r
+        gap_conn_param_update_t conn_param = { 0 };\r
+        conn_param.conn_handle = g_ble_conn_id;    /* param 0: conn_handle */\r
+        conn_param.interval_min =need_update_connect_param;    /* param 1: interval_min 1.25ms */\r
+        conn_param.interval_max = need_update_connect_param;    /* param 2: interval_max */\r
+        conn_param.slave_latency = 6;    /* param 3: slave_latency */\r
+        conn_param.timeout_multiplier = 500;    /* param 4: timeout_multiplier 10ms */\r
+        int ret = gap_ble_connect_param_update(&conn_param);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "触发 连接参数timer更新");\r
+    }\r
+    else\r
+    {\r
+        osTimerStop(ble_connect_timer);\r
+        osTimerDelete(ble_connect_timer);\r
+        ble_connect_timer = NULL;\r
+    }\r
+}\r
+\r
+static uint16_t ble_interval=50; \r
+\r
+uint16_t get_ble_interval(void)\r
+{\r
+    float temp_data =(float)ble_interval*1.25f;\r
+\r
+    return (uint16_t)temp_data;\r
+   \r
+}\r
+\r
+void srv_gap_ble_connect_param_update_callback(uint16_t conn_id, errcode_t status,\r
+    const gap_ble_conn_param_update_t *param)\r
+{\r
+    if(param->interval==50)\r
+    uapi_save_runtime_log(RUNTIME_LOG_BLE_CONNECT_UPDATE_50);\r
+    else if(param->interval==12)\r
+    uapi_save_runtime_log(RUNTIME_LOG_BLE_CONNECT_UPDATE_12);\r
+    else\r
+    uapi_save_runtime_log(RUNTIME_LOG_BLE_CONNECT_UPDATE|param->interval);\r
+\r
+    ble_interval=param->interval;\r
+\r
+    if(ble_connect_timer!=NULL)\r
+    {\r
+        osTimerStop(ble_connect_timer);\r
+        osTimerDelete(ble_connect_timer);\r
+        ble_connect_timer = NULL;\r
+    }\r
+\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, \r
+    "conn_id %d status %d gap_ble_conn_param_update_t interval %d latency%d  timeout %d ",conn_id,status,param->interval,param->latency,param->timeout);\r
+}\r
+\r
+\r
+\r
 void uapi_ble_connect_param_update(uint16_t data)\r
 {\r
     gap_conn_param_update_t conn_param = { 0 };\r
@@ -653,6 +713,27 @@ void uapi_ble_connect_param_update(uint16_t data)
     conn_param.slave_latency = 6;    /* param 3: slave_latency */\r
     conn_param.timeout_multiplier = 500;    /* param 4: timeout_multiplier 10ms */\r
     int ret = gap_ble_connect_param_update(&conn_param);\r
+\r
+    need_update_connect_param=data;\r
+\r
+    uint32_t tick;\r
+    osStatus_t retTimer;\r
+    if(ble_connect_timer!=NULL)\r
+    {\r
+        osTimerStop(ble_connect_timer);\r
+        osTimerDelete(ble_connect_timer);\r
+        ble_connect_timer = NULL;\r
+    }\r
+\r
+    ble_connect_timer = osTimerNew((osTimerFunc_t)ble_adv_Timer_CallBack, osTimerPeriodic, NULL, NULL);\r
+    tick =osMs2Tick(3000);\r
+    retTimer = osTimerStart(ble_connect_timer, tick);\r
+    if (retTimer != osOK && ble_connect_timer != NULL) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);\r
+        osTimerDelete(ble_connect_timer);\r
+        ble_connect_timer = NULL;\r
+        return;\r
+    }\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"gap ble update connection parameters %d ret: %X\n",data,ret);   \r
 }\r
 void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t status)\r
@@ -714,39 +795,7 @@ void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t s
 \r
     }\r
 }\r
-    // uint16_t interval;          /*!< @if Eng interval\r
-    //                                  @else   链路调度间隔,单位slot 1.25ms@endif */\r
-    // uint16_t latency;           /*!< @if Eng latency\r
-    //                                  @else   延迟周期,单位slot @endif */\r
-    // uint16_t timeout;           /*!< @if Eng timeout\r
-    //                                  @else   超时时间,单位10ms @endif */\r
-//发送连续数据参考此数值进行速度调整\r
-//2*slot\r
-static uint16_t ble_interval=50; \r
-\r
-uint16_t get_ble_interval(void)\r
-{\r
-    float temp_data =(float)ble_interval*1.25f;\r
-\r
-    return (uint16_t)temp_data;\r
-   \r
-}\r
-\r
-void srv_gap_ble_connect_param_update_callback(uint16_t conn_id, errcode_t status,\r
-    const gap_ble_conn_param_update_t *param)\r
-{\r
-    if(param->interval==50)\r
-    uapi_save_runtime_log(RUNTIME_LOG_BLE_CONNECT_UPDATE_50);\r
-    else\r
-    uapi_save_runtime_log(RUNTIME_LOG_BLE_CONNECT_UPDATE_12);\r
-\r
-        ble_interval=param->interval;\r
-      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, \r
-    "conn_id %d status %d gap_ble_conn_param_update_t interval %d latency%d  timeout %d ",conn_id,status,param->interval,param->latency,param->timeout);\r
-}\r
-\r
-\r
-\r
+ \r
 //添加ota特征值\r
 static void srv_ble_add_chart_decr_ota(uint8_t server_id,uint16_t srv_handle)\r
 {   \r
@@ -1188,7 +1237,7 @@ static void svr_ble_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid,
         srv_ble_add_chart_decr_long_cmd(server_id,srv_handle);\r
         srv_ble_add_chart_decr_recv_cmd(server_id,srv_handle);\r
         srv_ble_add_chart_decr_Zhihui_ota(server_id,srv_handle);\r
-srv_ble_add_ZHIHUIOTA_REPLY_chart_decr_recv_cmd(server_id,srv_handle);\r
+        srv_ble_add_ZHIHUIOTA_REPLY_chart_decr_recv_cmd(server_id,srv_handle);\r
         gatts_start_service(server_id, srv_handle);\r
     }\r
     if (ble_gatts_cmp_uuid(uuid, &hid_service_uuid) == true){\r
@@ -2127,6 +2176,7 @@ void Check_ble_adv_status(void)
 \r
     if(get_ble_connect())\r
     {\r
+        \r
         return;\r
     }\r
     else\r