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
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
\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
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
\r
if(get_ble_connect())\r
{\r
+ \r
return;\r
}\r
else\r