From bf7a642d4ef3ba0ce5d4512269fe152a800f156e Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Sun, 29 Sep 2024 15:52:14 +0800 Subject: [PATCH] =?utf8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E8=93=9D=E7=89=99?= =?utf8?q?=E8=BF=9E=E6=8E=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/alipay/src/AlipayMainView.cpp | 6 +- .../nativeui/alipay/src/AlipayPresenter.cpp | 9 +- .../ble_service/bleservice/bleService.c | 161 ++++++++---------- 3 files changed, 84 insertions(+), 92 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp index 0c06b94ff..db33303b4 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp @@ -49,10 +49,14 @@ AlipayMainView *AlipayMainView::GetInstance(void) void AlipayMainView::OnStart() { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::OnStart"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::OnStart"); + if(Alipay_is_init()==false) + return; View::OnStart(); BaseView::RootView(Color::Black().full); + + // 增加按键监听 RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::AlipayPresenter::GetInstance(); RootView::GetInstance()->SetOnKeyActListener(keyactListener); diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp index b8f08ac87..cc5a9536d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp @@ -55,15 +55,19 @@ AlipayPresenter *AlipayPresenter::GetInstance() void AlipayPresenter::OnStart() { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter OnStart"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter OnStart"); + if(Alipay_is_init()==false) + return; + Presenter::OnStart(); /**启动alipay蓝牙服务*/ start_alipay_ble_service(); /* -------------------------------- 设置支付宝界面常亮 ------------------------------- */ alipayMode_->AlipayScreenControl(true); /* -------------------------------------------------------------------------- */ - alipayMode_->AlipayExitLpm(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " alipayMode_->AlipayExitLpm()"); + if (!alipayMode_->AlipayInitModel()) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::OnStart AlipayInitModel fail."); // NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); @@ -71,6 +75,7 @@ void AlipayPresenter::OnStart() return; } svr_alipay_create_task(); + } void AlipayPresenter::OnPause(void) {} diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c index 109e5c45b..06b47a30f 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c @@ -119,9 +119,15 @@ uint16_t data2ae5Cmd = 0; uint16_t data2ae2Cmd = 0;//read uint16_t data2ae1Cmd = 0;//安卓消息来电 uint16_t data2ae0Cmd = 0;//OTA - uint16_t data2ae6Cmd = 0;//自定义OTA +#define handle_max_len 40 + +static uint16_t Is_value_handle[handle_max_len]={0}; + +static uint32_t handle_num=0; + + void get_phone_addr(bd_addr_t *addr) { if (addr!=NULL) memcpy(addr,&phone_addr,sizeof(bd_addr_t)); @@ -318,76 +324,51 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl "svr_ble_connstate_change_cb gap_ble_conn_state_t conn_state:%d pair_state:%d disc_reason:%d\r\n", conn_state,pair_state,disc_reason); - - - if (GAP_BLE_STATE_DISCONNECTED == conn_state) { // restart ble adv when disconnected - + if (GAP_BLE_STATE_DISCONNECTED == conn_state) + { // restart ble adv when disconnected WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_DISCONNECTED!!! \r\n"); - bd_addr_t addr_; - get_phone_addr(&addr_); - - if((addr_.addr[0]==addr->addr[0] && - addr_.addr[1]==addr->addr[1] && - addr_.addr[2]==addr->addr[2] && - addr_.addr[3]==addr->addr[3] && - addr_.addr[4]==addr->addr[4] && - addr_.addr[5]==addr->addr[5] )) + if(conn_id==g_ble_conn_id) { - Bleconnect = GAP_BLE_STATE_DISCONNECTED;//蓝牙已断开 free_ble_data(); - { - svr_ble_adv_start(); - - } + ble_disconnect_ok(); + + svr_ble_adv_start(); + + g_ble_conn_id==0; + + Bleconnect = GAP_BLE_STATE_DISCONNECTED;//蓝牙已断开 } else { - //地址对不上就仅是支付宝断连,无需处理 - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"支付宝绑定断连"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "其他连接断开,不做多余处理 \r\n"); } - // g_ble_conn_id = conn_id; - - } else { + + } + else + { devpair_state = 0;// WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "exit_alipay_gui !!! %d",exit_alipay_gui); + if( g_ble_conn_id !=0 && conn_id!=g_ble_conn_id) { - int ret =svr_ble_adv_stop(); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"%x",ret); - } - - - if(Bleconnect==GAP_BLE_STATE_CONNECTED) - { - bd_addr_t addr_; - get_phone_addr(&addr_); - if(!(addr_.addr[0]==addr->addr[0] && - addr_.addr[1]==addr->addr[1] && - addr_.addr[2]==addr->addr[2] && - addr_.addr[3]==addr->addr[3] && - addr_.addr[4]==addr->addr[4] && - addr_.addr[5]==addr->addr[5] )) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"支付宝连接"); - } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"支付宝连接"); } else { - g_ble_conn_id = conn_id; - set_phone_info(addr); + int ret =svr_ble_adv_stop(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"%x",ret); } - ble_connect_ok();; + set_phone_info(addr); + ble_connect_ok(); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x \n", addr->addr[3], addr->addr[2], addr->addr[1], addr->addr[0]); /* 3 2 1 0 idx */ + Bleconnect = GAP_BLE_STATE_CONNECTED;//蓝牙已连接 - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_CONNECTED!!! 0x%x\r\n",pair_state); - - - + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_CONNECTED!!! 0x%x\r\n",pair_state); } uapi_dev_runtime_set_ble_connect_stat(Bleconnect); @@ -409,14 +390,15 @@ void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t s gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 20); if(get_ble_pair()&&( cm_get_A2DP_switch() || cm_get_HFP_switch())) { - int ret=gap_reconnect_media_device(&phone_addr); + int ret=gap_reconnect_media_device(addr); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_reconnect_media_device!!! %X\r\n",ret); - }else{ - + } + else + { if(get_br_is_pair()) { bd_addr_t bdaddr={0}; - uapi_get_br_address(&bdaddr); + uapi_get_br_address(&addr); if(false==(bt_is_acl_connected(&bdaddr))) { if(cm_get_A2DP_switch() || cm_get_HFP_switch()) @@ -919,20 +901,15 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t bt_uuid_t hid_report_uuid_2ae6 = {0}; bts_data_to_uuid_len2(BLE_ZHIHUI_OTA_ID, &hid_report_uuid_2ae6); - // bt_uuid_t alipay_report_uuid = {0}; - // bts_data_to_uuid_len2(ALIPAYY_CHARACTERISTIC_ID, &alipay_report_uuid); - // if(ble_gatts_cmp_uuid(uuid, &alipay_report_uuid)) - // { - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " alipay_handle %d\r\n",result->value_handle); - // alipay_handle = result->value_handle; - // } if(ble_gatts_cmp_uuid(uuid, &hid_report_uuid_2ae6)) { if(data2ae6Cmd==0) { data2ae6Cmd=result->value_handle; } + Is_value_handle[handle_num]; + handle_num++; } if(ble_gatts_cmp_uuid(uuid, &chara_uuid_data_2ae5)) { @@ -943,6 +920,8 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t if(data2ae5Cmd == 0){ data2ae5Cmd = result->value_handle; } + Is_value_handle[handle_num]; + handle_num++; WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " 2ae5 result->value_handle1 %d\r\n",result->value_handle); } @@ -954,6 +933,8 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t { data2ae3Cmd = result->value_handle; } + Is_value_handle[handle_num]; + handle_num++; } @@ -964,6 +945,8 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t { data2ae0Cmd = result->value_handle; } + Is_value_handle[handle_num]; + handle_num++; } if(ble_gatts_cmp_uuid(uuid, &chara_uuid_data_2ae1)) { @@ -971,6 +954,9 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t { data2ae1Cmd = result->value_handle; } + Is_value_handle[handle_num]; + handle_num++; + // data2ae1Cmd = result->value_handle; WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "2ae1 result->value_handle5 %d\r\n",result->value_handle); // shortCmdChara = result->value_handle; @@ -982,6 +968,8 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t if(data2ae2Cmd == 0){ data2ae2Cmd = result->value_handle; } + Is_value_handle[handle_num]; + handle_num++; } if(ble_gatts_cmp_uuid(uuid, &chara_uuid_data_2ae4)) { @@ -990,6 +978,8 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t { data2ae4Cmd = result->value_handle; } + Is_value_handle[handle_num]; + handle_num++; // = result->value_handle; } if (ble_gatts_cmp_uuid(uuid, &hid_report_uuid_2a4d) == true) { @@ -1006,9 +996,10 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t if (ble_gatts_cmp_uuid(uuid, &factorytest_recv_uuid) == true) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->factorytest_recv_uuid %d\r\n",result->value_handle); - // if(g_hid_server_handle == 0){ - // g_hid_server_handle = result->value_handle; - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_hid_server_handle %d\r\n",g_hid_server_handle); + + Is_value_handle[handle_num]; + handle_num++; + ble_factorytest_store_recv_handle(result->value_handle) ; // } } @@ -1018,9 +1009,8 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t if (ble_gatts_cmp_uuid(uuid, &factorytest_report_uuid) == true) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->factorytest_report_uuid %d\r\n",result->value_handle); - // if(g_hid_server_handle == 0){ - // g_hid_server_handle = result->value_handle; - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_hid_server_handle %d\r\n",g_hid_server_handle); + Is_value_handle[handle_num]; + handle_num++; ble_factorytest_store_report_handle(result->value_handle); // } } @@ -1030,9 +1020,8 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t if (ble_gatts_cmp_uuid(uuid, &factorytest_ota_recv_uuid) == true) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->factorytest_ota_recv_uuid %d\r\n",result->value_handle); - // if(g_hid_server_handle == 0){ - // g_hid_server_handle = result->value_handle; - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_hid_server_handle %d\r\n",g_hid_server_handle); + Is_value_handle[handle_num]; + handle_num++; ble_factorytest_store_ota_recv_handle(result->value_handle) ; // } } @@ -1042,9 +1031,8 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t if (ble_gatts_cmp_uuid(uuid, &factorytest_ota_report_uuid) == true) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->factorytest_ota_report_uuid %d\r\n",result->value_handle); - // if(g_hid_server_handle == 0){ - // g_hid_server_handle = result->value_handle; - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_hid_server_handle %d\r\n",g_hid_server_handle); + Is_value_handle[handle_num]; + handle_num++; ble_factorytest_store_ota_report_handle(result->value_handle); // } } @@ -1054,6 +1042,8 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t bts_data_to_uuid_len2(BLE_UUID_PPG_NOTIFY, &ppgtest_report_uuid); if (ble_gatts_cmp_uuid(uuid, &ppgtest_report_uuid) == true) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->ble_ppgtest_store_report_handle %d\r\n",result->value_handle); + Is_value_handle[handle_num]; + handle_num++; ble_ppgtest_store_report_handle(result->value_handle); } @@ -1063,9 +1053,10 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t if (ble_gatts_cmp_uuid(uuid, &cywee_report_uuid) == true) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "result->cywee_report_uuid %d\r\n",result->value_handle); - // if(g_hid_server_handle == 0){ - // g_hid_server_handle = result->value_handle; - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_hid_server_handle %d\r\n",g_hid_server_handle); + + Is_value_handle[handle_num]; + handle_num++; + ble_cywee_store_report_handle(result->value_handle); // } @@ -1211,22 +1202,13 @@ static uint8_t falg = 0; static bool Is_App_ble_handle(uint16_t handle) { - if(handle==data2ae3Cmd || - handle==data2ae4Cmd|| - handle==data2ae5Cmd|| - handle==data2ae2Cmd|| - handle==data2ae1Cmd|| - handle==data2ae0Cmd|| - handle==data2ae6Cmd - ) + for(int i=0;ihandle==data2ae0Cmd)) + if(Is_App_ble_handle(write_cb_para->handle)) { + printf(" %d %d\r\n",conn_id,write_cb_para->handle); g_ble_conn_id=conn_id; } blesrv_service_recv_msg_handler(write_cb_para->handle,write_cb_para->value,write_cb_para->length); -- 2.17.1