\r
if(!get_br_is_pair())\r
{ \r
- //gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, sec); \r
}\r
}\r
\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
- g_ble_conn_id = conn_id;\r
+ \r
+\r
if (GAP_BLE_STATE_DISCONNECTED == conn_state) { // restart ble adv when disconnected\r
- Bleconnect = GAP_BLE_STATE_DISCONNECTED;//蓝牙已断开\r
+ \r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_DISCONNECTED!!! \r\n");\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_DISCONNECTED!!! svr_alipay_get_adv_start_state %d alipay_get_binding_status:%d\r\n",svr_alipay_get_adv_start_state(),alipay_get_binding_status());\r
- // if(AdverFlag == true){\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
+ {\r
+ Bleconnect = GAP_BLE_STATE_DISCONNECTED;//蓝牙已断开\r
free_ble_data(); \r
- //if(uapi_dev_runtime_get_bt_powerstat()) \r
{\r
svr_ble_adv_start();\r
- //gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 0); \r
+\r
} \r
- ble_disconnect_ok(); \r
- // } \r
+ ble_disconnect_ok();\r
+ }\r
+ else\r
+ {\r
+ //地址对不上就仅是支付宝断连,无需处理\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"支付宝绑定断连");\r
+ }\r
+ // g_ble_conn_id = conn_id;\r
+\r
} else {\r
devpair_state = 0;//\r
\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "exit_alipay_gui !!! %d",exit_alipay_gui);\r
- //if(!exit_alipay_gui)//如果进入了绑定二维码界面 正在连接app 不需要停止广播数据\r
+\r
{\r
- svr_ble_adv_stop();\r
+ int ret =svr_ble_adv_stop();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"%x",ret);\r
} \r
- set_phone_info(addr);\r
-\r
-\r
- ble_connect_ok();\r
- //gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0); \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
+ }\r
+ else\r
+ {\r
+ g_ble_conn_id = conn_id;\r
+ set_phone_info(addr);\r
+ }\r
\r
- //int ret= a2dp_snk_connect(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
- //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"state(int): %x\n", ret);\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
if(status==ERRCODE_SUCC)\r
{\r
if(get_ble_pair())\r
- ble_ancs_client_cmd_setup_and_subscribe(g_ble_conn_id);\r
+ ble_ancs_client_cmd_setup_and_subscribe(conn_id);\r
\r
if(get_ctkd_flag() && uapi_dev_runtime_get_bt_powerstat())\r
{\r
//WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "svr_ble_bt_gatts_req_read_cb ret:is_long:%d 2ae2 %d read_cb_para->handle :%d",read_cb_para->is_long,data2ae2Cmd,read_cb_para->handle);\r
if(read_cb_para->handle==data2ae2Cmd)\r
{\r
+ g_ble_conn_id=conn_id;\r
+\r
static uint8_t battery_point_val[20] = {0};\r
// 获取电池电压值\r
float voltage = 0.0F;\r
\r
static uint8_t falg = 0;\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
+ {\r
+\r
+ return true;\r
+ }\r
+ else\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
errcode_t status)\r
{ \r
fwrite("x",1,1,fp);\r
fclose(fp);\r
}\r
- \r
+ }\r
+ if(Is_App_ble_handle(write_cb_para->handle==data2ae0Cmd))\r
+ {\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
}\r
+\r
+void ble_test_ANCS(void)\r
+{\r
+ ble_ancs_client_cmd_setup_and_subscribe(g_ble_conn_id);\r
+}\r
+\r
+\r
+void ble_test_ANCS_notify(uint8_t type)\r
+{\r
+ ble_ancs_client_subscribe_notify(g_ble_conn_id,type);\r
+}\r
+\r
static void svr_ble_mtu_exchange(uint8_t server_id, uint16_t conn_id, uint16_t mtu_size, errcode_t status)\r
{\r
ble_nus_max_data_len = mtu_size-3;\r
-\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "svr_ble_mtu_exchange %d %d %d\r\n",server_id,conn_id,mtu_size);\r
}\r
/******************* gap_ble ************************************/\r