uint16_t data2ae2Cmd = 0;//read\r
uint16_t data2ae1Cmd = 0;//安卓消息来电\r
uint16_t data2ae0Cmd = 0;//OTA\r
-\r
uint16_t data2ae6Cmd = 0;//自定义OTA \r
\r
+#define handle_max_len 40\r
+\r
+static uint16_t Is_value_handle[handle_max_len]={0};\r
+\r
+static uint32_t handle_num=0;\r
+\r
+\r
void get_phone_addr(bd_addr_t *addr)\r
{\r
if (addr!=NULL) memcpy(addr,&phone_addr,sizeof(bd_addr_t));\r
"svr_ble_connstate_change_cb gap_ble_conn_state_t conn_state:%d pair_state:%d disc_reason:%d\r\n",\r
conn_state,pair_state,disc_reason);\r
\r
- \r
-\r
- if (GAP_BLE_STATE_DISCONNECTED == conn_state) { // restart ble adv when disconnected\r
- \r
+ if (GAP_BLE_STATE_DISCONNECTED == conn_state) \r
+ { // restart ble adv when disconnected\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_DISCONNECTED!!! \r\n");\r
- bd_addr_t addr_;\r
- get_phone_addr(&addr_);\r
-\r
- if((addr_.addr[0]==addr->addr[0] && \r
- addr_.addr[1]==addr->addr[1] && \r
- addr_.addr[2]==addr->addr[2] && \r
- addr_.addr[3]==addr->addr[3] && \r
- addr_.addr[4]==addr->addr[4] && \r
- addr_.addr[5]==addr->addr[5] ))\r
+ if(conn_id==g_ble_conn_id)\r
{\r
- Bleconnect = GAP_BLE_STATE_DISCONNECTED;//蓝牙已断开\r
free_ble_data(); \r
- {\r
- svr_ble_adv_start();\r
-\r
- } \r
+ \r
ble_disconnect_ok();\r
+\r
+ svr_ble_adv_start();\r
+\r
+ g_ble_conn_id==0;\r
+\r
+ Bleconnect = GAP_BLE_STATE_DISCONNECTED;//蓝牙已断开\r
}\r
else\r
{\r
- //地址对不上就仅是支付宝断连,无需处理\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"支付宝绑定断连");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "其他连接断开,不做多余处理 \r\n");\r
}\r
- // g_ble_conn_id = conn_id;\r
-\r
- } else {\r
+ \r
+ } \r
+ else \r
+ {\r
devpair_state = 0;//\r
\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "exit_alipay_gui !!! %d",exit_alipay_gui);\r
\r
+ if( g_ble_conn_id !=0 && conn_id!=g_ble_conn_id)\r
{\r
- int ret =svr_ble_adv_stop();\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"%x",ret);\r
- } \r
- \r
- \r
- if(Bleconnect==GAP_BLE_STATE_CONNECTED)\r
- {\r
- bd_addr_t addr_;\r
- get_phone_addr(&addr_);\r
- if(!(addr_.addr[0]==addr->addr[0] && \r
- addr_.addr[1]==addr->addr[1] && \r
- addr_.addr[2]==addr->addr[2] && \r
- addr_.addr[3]==addr->addr[3] && \r
- addr_.addr[4]==addr->addr[4] && \r
- addr_.addr[5]==addr->addr[5] ))\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"支付宝连接");\r
- }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"支付宝连接");\r
}\r
else\r
{\r
- g_ble_conn_id = conn_id;\r
- set_phone_info(addr);\r
+ int ret =svr_ble_adv_stop();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"%x",ret);\r
}\r
\r
- ble_connect_ok();;\r
+ set_phone_info(addr);\r
+ ble_connect_ok();\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x \n",\r
addr->addr[3], addr->addr[2], addr->addr[1], addr->addr[0]); /* 3 2 1 0 idx */\r
\r
+\r
Bleconnect = GAP_BLE_STATE_CONNECTED;//蓝牙已连接\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_CONNECTED!!! 0x%x\r\n",pair_state);\r
- \r
- \r
- \r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_CONNECTED!!! 0x%x\r\n",pair_state); \r
}\r
\r
uapi_dev_runtime_set_ble_connect_stat(Bleconnect);\r
gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 20);\r
if(get_ble_pair()&&( cm_get_A2DP_switch() || cm_get_HFP_switch()))\r
{\r
- int ret=gap_reconnect_media_device(&phone_addr);\r
+ int ret=gap_reconnect_media_device(addr);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_reconnect_media_device!!! %X\r\n",ret);\r
- }else{\r
- \r
+ }\r
+ else\r
+ { \r
if(get_br_is_pair())\r
{\r
bd_addr_t bdaddr={0};\r
- uapi_get_br_address(&bdaddr);\r
+ uapi_get_br_address(&addr);\r
if(false==(bt_is_acl_connected(&bdaddr)))\r
{\r
if(cm_get_A2DP_switch() || cm_get_HFP_switch())\r
bt_uuid_t hid_report_uuid_2ae6 = {0};\r
bts_data_to_uuid_len2(BLE_ZHIHUI_OTA_ID, &hid_report_uuid_2ae6);\r
\r
- // bt_uuid_t alipay_report_uuid = {0};\r
- // bts_data_to_uuid_len2(ALIPAYY_CHARACTERISTIC_ID, &alipay_report_uuid);\r
\r
- // if(ble_gatts_cmp_uuid(uuid, &alipay_report_uuid))\r
- // {\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " alipay_handle %d\r\n",result->value_handle);\r
- // alipay_handle = result->value_handle;\r
- // }\r
if(ble_gatts_cmp_uuid(uuid, &hid_report_uuid_2ae6))\r
{\r
if(data2ae6Cmd==0)\r
{\r
data2ae6Cmd=result->value_handle;\r
}\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
}\r
if(ble_gatts_cmp_uuid(uuid, &chara_uuid_data_2ae5))\r
{\r
if(data2ae5Cmd == 0){\r
data2ae5Cmd = result->value_handle;\r
}\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " 2ae5 result->value_handle1 %d\r\n",result->value_handle);\r
}\r
{\r
data2ae3Cmd = result->value_handle;\r
}\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
\r
}\r
\r
{\r
data2ae0Cmd = result->value_handle;\r
}\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
}\r
if(ble_gatts_cmp_uuid(uuid, &chara_uuid_data_2ae1))\r
{\r
{\r
data2ae1Cmd = result->value_handle;\r
}\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
+\r
// data2ae1Cmd = result->value_handle;\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "2ae1 result->value_handle5 %d\r\n",result->value_handle);\r
// shortCmdChara = result->value_handle;\r
if(data2ae2Cmd == 0){\r
data2ae2Cmd = result->value_handle;\r
}\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
}\r
if(ble_gatts_cmp_uuid(uuid, &chara_uuid_data_2ae4))\r
{\r
{\r
data2ae4Cmd = result->value_handle;\r
}\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
// = result->value_handle;\r
}\r
if (ble_gatts_cmp_uuid(uuid, &hid_report_uuid_2a4d) == true) {\r
\r
if (ble_gatts_cmp_uuid(uuid, &factorytest_recv_uuid) == true) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->factorytest_recv_uuid %d\r\n",result->value_handle);\r
- // if(g_hid_server_handle == 0){\r
- // g_hid_server_handle = result->value_handle;\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_hid_server_handle %d\r\n",g_hid_server_handle);\r
+\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
+\r
ble_factorytest_store_recv_handle(result->value_handle) ;\r
// }\r
}\r
\r
if (ble_gatts_cmp_uuid(uuid, &factorytest_report_uuid) == true) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->factorytest_report_uuid %d\r\n",result->value_handle);\r
- // if(g_hid_server_handle == 0){\r
- // g_hid_server_handle = result->value_handle;\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_hid_server_handle %d\r\n",g_hid_server_handle);\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
ble_factorytest_store_report_handle(result->value_handle);\r
// }\r
}\r
\r
if (ble_gatts_cmp_uuid(uuid, &factorytest_ota_recv_uuid) == true) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->factorytest_ota_recv_uuid %d\r\n",result->value_handle);\r
- // if(g_hid_server_handle == 0){\r
- // g_hid_server_handle = result->value_handle;\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_hid_server_handle %d\r\n",g_hid_server_handle);\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
ble_factorytest_store_ota_recv_handle(result->value_handle) ;\r
// }\r
}\r
\r
if (ble_gatts_cmp_uuid(uuid, &factorytest_ota_report_uuid) == true) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->factorytest_ota_report_uuid %d\r\n",result->value_handle);\r
- // if(g_hid_server_handle == 0){\r
- // g_hid_server_handle = result->value_handle;\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_hid_server_handle %d\r\n",g_hid_server_handle);\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
ble_factorytest_store_ota_report_handle(result->value_handle);\r
// }\r
}\r
bts_data_to_uuid_len2(BLE_UUID_PPG_NOTIFY, &ppgtest_report_uuid);\r
if (ble_gatts_cmp_uuid(uuid, &ppgtest_report_uuid) == true) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->ble_ppgtest_store_report_handle %d\r\n",result->value_handle);\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
ble_ppgtest_store_report_handle(result->value_handle);\r
}\r
\r
\r
if (ble_gatts_cmp_uuid(uuid, &cywee_report_uuid) == true) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->cywee_report_uuid %d\r\n",result->value_handle);\r
- // if(g_hid_server_handle == 0){\r
- // g_hid_server_handle = result->value_handle;\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_hid_server_handle %d\r\n",g_hid_server_handle);\r
+\r
+ Is_value_handle[handle_num];\r
+ handle_num++;\r
+\r
ble_cywee_store_report_handle(result->value_handle);\r
// }\r
\r
\r
static bool Is_App_ble_handle(uint16_t handle)\r
{\r
- if(handle==data2ae3Cmd ||\r
- handle==data2ae4Cmd||\r
- handle==data2ae5Cmd||\r
- handle==data2ae2Cmd||\r
- handle==data2ae1Cmd||\r
- handle==data2ae0Cmd||\r
- handle==data2ae6Cmd\r
- )\r
+ for(int i=0;i<handle_max_len;i++)\r
{\r
-\r
+ if(Is_value_handle[i]==handle)\r
return true;\r
}\r
- else\r
- {\r
- return false;\r
- }\r
+ return false;\r
+\r
}\r
\r
static void svr_ble_bt_gatts_req_write_cb(uint8_t server_id, uint16_t conn_id, gatts_req_write_cb_t *write_cb_para,\r
fclose(fp);\r
}\r
}\r
- if(Is_App_ble_handle(write_cb_para->handle==data2ae0Cmd))\r
+ if(Is_App_ble_handle(write_cb_para->handle))\r
{\r
+ printf(" %d %d\r\n",conn_id,write_cb_para->handle);\r
g_ble_conn_id=conn_id;\r
}\r
blesrv_service_recv_msg_handler(write_cb_para->handle,write_cb_para->value,write_cb_para->length);\r