合并蓝牙支付宝服务 466/1 466/head 467/target/1 468/target/1
authorhcj <1224667075@qq.com>
Fri, 5 Jul 2024 09:20:45 +0000 (17:20 +0800)
committerhcj <1224667075@qq.com>
Fri, 5 Jul 2024 09:20:45 +0000 (17:20 +0800)
code/sdk/application/wearable/alipay/service/alipay_bluetooth.c
code/sdk/application/wearable/alipay/service/alipay_bluetooth.h
code/sdk/application/wearable/alipay/service/alipay_feature.h
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c

index 03fe767..1237fa0 100644 (file)
@@ -197,8 +197,10 @@ static void svr_alipay_ble_adv_stop_cb(uint8_t adv_id, adv_status_t status)
 static void svr_alipay_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid, uint16_t srv_handle,\r
     errcode_t status)\r
 {\r
-    if ((uuid->uuid_len == sizeof(uint16_t)) && (*((uint16_t *)uuid->uuid) == ALIPAYY_SERVICE_ID)) {\r
-        ALIPAY_PRINT_DEBUG(0, "BtGattsServiceAddCallback 0x%x 0x%x 0x%x 0x%x",\r
+    if ((uuid->uuid_len == sizeof(uint16_t)) && (*((uint16_t *)uuid->uuid) == ALIPAYY_SERVICE_ID)) \r
+    {\r
+        \r
+        printf( "BtGattsServiceAddCallback 0x%x 0x%x 0x%x 0x%x",\r
                            status, server_id, srv_handle, *((uint16_t *)uuid->uuid));\r
         uint16_t id = ALIPAYY_CHARACTERISTIC_ID;\r
         gatts_add_chara_info_t character;\r
@@ -224,7 +226,8 @@ static void svr_alipay_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uui
 static void svr_alipay_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t *uuid, uint16_t srv_handle,\r
     gatts_add_character_result_t *result, errcode_t status)\r
 {\r
-    if ((uuid->uuid_len == sizeof(uint16_t)) && (*((uint16_t *)uuid->uuid) == ALIPAYY_CHARACTERISTIC_ID)) {\r
+    if ((uuid->uuid_len == sizeof(uint16_t)) && (*((uint16_t *)uuid->uuid) == ALIPAYY_CHARACTERISTIC_ID))\r
+     {\r
         ALIPAY_PRINT_DEBUG(0, "BtGattsCharacteristicAddCallback 0x%x 0x%x 0x%x 0x%x 0x%x",\r
                            status, server_id, srv_handle, result->handle, result->value_handle);\r
         uint8_t bas_ccc_val[] = {\r
@@ -362,31 +365,50 @@ static void svr_alipay_btcallback_reg(void)
 #endif\r
 }\r
 \r
-void svr_alipay_bt_init_gatts(void)\r
+void ble_add_alipay_service(uint8_t server_id)\r
+{\r
+    printf("ble_add_alipay_service\r\n");\r
+    bt_uuid_t alipay_service_uuid = {0};\r
+    bts_data_to_uuid_len2(ALIPAYY_SERVICE_ID, &alipay_service_uuid);\r
+    //只有一个服务,永远是1\r
+   errcode_t ret = 0;\r
+#ifndef SUPPORT_AT_OHOSFWK\r
+        ret = gatts_add_service(server_id, &alipay_service_uuid, true);\r
+        printf(" NO SUPPORT_AT_OHOSFWK\r\n");\r
+ #else\r
+    ret = wrapper_gatts_add_service(server_id, &alipay_service_uuid, true);\r
+    printf("ble_add_alipay_service wrapper_gatts_add_service ret: 0x%x serverId = 0x%x uuid.uuid_len:%d\n", ret, server_id,alipay_service_uuid.uuid_len);\r
+#endif\r
+    g_alipay_server_id=server_id;\r
+}\r
+\r
+\r
+void svr_alipay_bt_init_gatts(uint8_t server_id )\r
 {\r
     uint16_t service_id = ALIPAYY_SERVICE_ID;\r
-    uint8_t server_id = 0;\r
+    //uint8_t server_id = 0;\r
     bt_uuid_t uuid;\r
     int ret;\r
 \r
     uuid.uuid_len = sizeof(service_id);\r
     memcpy_s(uuid.uuid, sizeof(uuid.uuid), (char *)&service_id, sizeof(service_id));\r
-#ifndef SUPPORT_AT_OHOSFWK\r
-    ret = gatts_register_server(&uuid, &server_id); /* 注册gatt server */\r
-    if (ret != ERRCODE_SUCC) {\r
-        ALIPAY_PRINT_ERR(0, "gatts_register_server ret:0x%x.\r\n", ret);\r
-    }\r
-#else\r
-    ret = wrapper_gatts_register_server(&uuid, &server_id); /* 注册gatt server */\r
-    if (ret != ERRCODE_SUCC) {\r
-        ALIPAY_PRINT_ERR(0, "wrapper_gatts_register_server ret:0x%x.\r\n", ret);\r
-    }\r
-#endif\r
+// #ifndef SUPPORT_AT_OHOSFWK\r
+//     ret = gatts_register_server(&uuid, &server_id); /* 注册gatt server */\r
+//     if (ret != ERRCODE_SUCC) {\r
+//         ALIPAY_PRINT_ERR(0, "gatts_register_server ret:0x%x.\r\n", ret);\r
+//     }\r
+// #else\r
+//     ret = wrapper_gatts_register_server(&uuid, &server_id); /* 注册gatt server */\r
+//     if (ret != ERRCODE_SUCC) {\r
+//         ALIPAY_PRINT_ERR(0, "wrapper_gatts_register_server ret:0x%x.\r\n", ret);\r
+//     }\r
+// #endif\r
     \r
     ALIPAY_PRINT_DEBUG(0, "gatts_register_server ret: 0x%x server_id = 0x%x", ret, server_id);\r
     g_alipay_server_id = server_id;\r
     uuid.uuid_len = sizeof(service_id);\r
     memcpy_s(uuid.uuid, sizeof(uuid.uuid), (char *)&service_id, sizeof(service_id));\r
+\r
 #ifndef SUPPORT_AT_OHOSFWK\r
     ret = gatts_add_service(server_id, &uuid, true);\r
     if (ret != ERRCODE_SUCC) {\r
@@ -402,19 +424,21 @@ void svr_alipay_bt_init_gatts(void)
     return;\r
 }\r
 \r
-void svr_alipay_bluetooth_init(void)\r
+void svr_alipay_bluetooth_init(uint8_t server_id)\r
 {\r
-#ifndef SUPPORT_AT_OHOSFWK\r
-    bool ret = enable_bt_stack();\r
-    if (ret != ERRCODE_SUCC) {\r
-        ALIPAY_PRINT_ERR(0, "enable_bt_stack ret:%u.\r\n", ret);\r
-    }\r
-#endif\r
+// #ifndef SUPPORT_AT_OHOSFWK\r
+//     bool ret = enable_bt_stack();\r
+//     if (ret != ERRCODE_SUCC) {\r
+//         ALIPAY_PRINT_ERR(0, "enable_bt_stack ret:%u.\r\n", ret);\r
+//     }\r
+// #endif\r
     if (g_alipay_ble_init_flag == true) {\r
         return;\r
     }\r
+    printf("svr_alipay_bluetooth_init \r\n");\r
     svr_alipay_btcallback_reg();\r
-    svr_alipay_bt_init_gatts();\r
+    svr_alipay_bt_init_gatts(server_id);\r
+    \r
     g_alipay_ble_init_flag = true;\r
     return;\r
 }\r
index dac57ee..7da8ac9 100644 (file)
@@ -6,9 +6,9 @@
 #include "bts_def.h"
 
 /* Gatt service UUID */
-#define ALIPAYY_SERVICE_ID 0x3802
+#define ALIPAYY_SERVICE_ID 0x0238
 /* Gatt Characteristic UUID */
-#define ALIPAYY_CHARACTERISTIC_ID 0x4A02
+#define ALIPAYY_CHARACTERISTIC_ID 0x024A
 /* Client Characteristic Configuration UUID */
 #define ALIPAYY_BLE_UUID_CLIENT_CHARACTERISTIC_CONF 0x2902
 /* Gatt Characteristic max length */
 #define ALIPAY_BLE_DEFAULT_NAME_LEN 9 
 
 #define ALIPAY_BLE_MAC_MAX_LEN 6
-void svr_alipay_bluetooth_init(void);
+void svr_alipay_bluetooth_init(uint8_t);
 void ble_alipay_add_characters_input_report_cbk(uint16_t srvc_handle);
 void svr_alipay_bt_gatts_characteristic_add_dec(uint8_t server_id,uint16_t srv_handle);
 void svr_alipay_set_adv_start_state(bool state);
 bool svr_alipay_get_adv_start_state(void);
-void svr_alipay_bt_init_gatts(void);
+void svr_alipay_bt_init_gatts(uint8_t);
 void svr_alipay_ble_adv_start_t(void);
+void ble_add_alipay_service(uint8_t server_id);
 #endif
 
index a2f0147..704ba38 100755 (executable)
@@ -362,7 +362,7 @@ void svr_alipay_bt_gatts_noyify(uint8_t *data, uint16_t data_len);
  * @brief alipay BLE module initialization.
  * @return  NULL.
  */
-void svr_alipay_bluetooth_init(void);
+void svr_alipay_bluetooth_init(uint8_t);
 
 /*
  * @brief alipay svr init.
index 5d0ac7a..ff58c74 100644 (file)
 #include "tcxo.h"\r
 #include "custom_runtime.h"\r
 #include "bleService.h"\r
+\r
+#ifdef SUPPORT_AT_OHOSFWK\r
+#include "BluetoothWrapper.h"\r
+#endif\r
 namespace OHOS {\r
 \r
 #define BT_SPP_TASK_STACK_SIZE 2048\r
@@ -148,14 +152,19 @@ static int bluetooth_init_all(void)
     BtInitCallBacks();\r
     wrapper_ble_register();\r
 #ifdef SUPPORT_ALIPAY_SEC\r
-    // svr_alipay_bluetooth_init(); //Alipay BLE\r
+    wrapper_gatts_clear_service(); //Alipay BLE\r
 #endif\r
-\r
+    // svr_alipay_btcallback_reg();\r
     /***Custom BleService */\r
+#ifdef SUPPORT_ALIPAY_SEC\r
+     //Alipay BLE\r
+#endif\r
     svr_ble_bluetooth_init(); //CUSTOM BLE\r
+    \r
     // BtInitCallBacksEx(); //BLE\r
     // BtInitGatts(); //BLE \r
 \r
+\r
     //start reg ble server\r
     wrapper_gatts_service_start(); \r
     // do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_BLE_WRAPPERSTART,NULL,0);\r
index 70aade4..423cdb2 100644 (file)
@@ -199,37 +199,7 @@ cJSON* ble_get_recs_data()
 Tag_Trailer_t Mp3Trailer;
 Tag_ID3V2_TAG_T TAG_T;
 
-void Tag_GetTrailer( FILE *fp)
-{
-// Get Header
-  
-
-    fseek(fp,-128,SEEK_END);
-    fread(Mp3Trailer.Header,3,1,fp);
-    printf("Header : %s",Mp3Trailer.Header);
-    // Get Title
-    fseek(fp,-125,SEEK_END);
-    fread(Mp3Trailer.Title,30,1,fp);
-    // Get Artist
-    fseek(fp,-95,SEEK_END);
-    fread(Mp3Trailer.Artist,30,1,fp);
-     printf("Artist : %s",Mp3Trailer.Artist);
-    // Get Album
-    fseek(fp,-65,SEEK_END);
-    fread(Mp3Trailer.Album,30,1,fp);
-    // Get Year
-    fseek(fp,-35,SEEK_END);
-    fread(Mp3Trailer.Year,4,1,fp);
-    // Get Comment
-    fseek(fp,-31,SEEK_END);
-    fread(Mp3Trailer.Comment,30,1,fp);
-    // Get Cenre
-    fseek(fp,-1,SEEK_END);
-    fread(Mp3Trailer.Cenre,1,1,fp);
-}
-
-
-void Tag_read_ID2V3( FILE *fp)
+void Tag_read_ID3V2( FILE *fp)
 {
 // Get Header
     fseek(fp,10,SEEK_CUR);
@@ -238,7 +208,7 @@ void Tag_read_ID2V3( FILE *fp)
     for(int i=7;i>0;i--)
     {
         memset_s(&TAG_T,sizeof(TAG_T),0,sizeof(TAG_T));
-        int size =fread(TAG_T.ID,4,1,fp);
+        uint32_t size =fread(TAG_T.ID,4,1,fp);
 
         if(strcmp("TPE1",TAG_T.ID)==0)
         printf("Header :%d %s\r\n",size,TAG_T.ID);
@@ -250,16 +220,13 @@ void Tag_read_ID2V3( FILE *fp)
         if(strcmp("TPE1",TAG_T.ID)==0)
         printf("Size :%d\r\n",size);
         
-        if(size<0)
-        return;
-
 
         fread(TAG_T.Flags,2,1,fp);
         
         char buf[124]={0};
         if(strcmp("TPE1",TAG_T.ID)==0)
         {
-            memset_s(&Mp3Trailer,sizeof(Mp3Trailer),0,sizeof(Mp3Trailer));
+           
             fread(Mp3Trailer.Artist,1,size,fp);
             printf("data : %s\r\n",Mp3Trailer.Artist);
         }
@@ -333,14 +300,14 @@ char * dir_to_json_buf_malloc_(uint8_t type)
                     }
                     Tag_ID3V2_t tag={0};
                     fread(tag.Header,3,1,fp);
-                    //printf("tag.Header %s\r\n",tag.Header);
                     fread(&tag.Ver,1,1,fp);
-                    //printf("tag.Ver %d\r\n",tag.Ver);
+
+                    memset_s(&Mp3Trailer,sizeof(Mp3Trailer),0,sizeof(Mp3Trailer));
                     if(tag.Ver==3)
                     {
                         printf("%s\r\n",ent->d_name);
                         fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
-                        Tag_read_ID2V3(fp);
+                        Tag_read_ID3V2(fp);
                     }
                     else
                     {
@@ -348,6 +315,7 @@ char * dir_to_json_buf_malloc_(uint8_t type)
                     }
                     fclose(fp);
 
+                   
                     cJSON* itemJSON = cJSON_CreateObject();
                     cJSON_AddNumberToObject(itemJSON,"uid",file_index);
                     cJSON_AddStringToObject(itemJSON,"name",fileName.c_str());
index 9367133..712f4cc 100644 (file)
@@ -298,7 +298,10 @@ void send_big_data(uint8_t flag, char *data, int datalen, int total, uint32_t Pa
         printf("内存分配失败\n");\r
         return;\r
     }\r
-\r
+    if(Packet_id>=2)\r
+    {\r
+        msleep(10);//多包数据发送增加延迟\r
+    }\r
     // 设置消息头部信息\r
     buf[0] = 0x72; // 消息头\r
     buf[1] = type; // 类型\r
@@ -486,6 +489,8 @@ errcode_t UnbindSucessCmd(uint8_t flag)//发送解绑指令,解绑界面调用
     value[17] = flag;\r
     value[18] = Calculate_CRC(value,18);\r
     sendok =  sendBleData(value,19);\r
+    msleep(50);//增加延时,确保可以成功发送解除绑定\r
+\r
     bool ret = bt_is_acl_connected(&phone_addr);\r
     if(flag == 1)\r
     {   \r
@@ -525,7 +530,8 @@ void clearPaireFlag(uint8_t flag)
     sendBleData(value,19);\r
     \r
     UnbindSucessCmd(1);//1确认解绑;\r
-    uapi_reboot_device();\r
+    do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING, NULL, 0);//恢复出厂\r
+    //uapi_reboot_device();\r
 }\r
 void clearPaireCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)//发送清除配对指令\r
 {\r
index 7b542e5..fc1daa0 100644 (file)
@@ -694,9 +694,10 @@ static void svr_ble_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid,
         || uuid_tmp == BLE_UUID_HUMAN_INTERFACE_DEVICE \r
         || uuid_tmp == BLE_UUID_ATE_FACTORYTEST_SERVICE \r
         || uuid_tmp == BLE_UUID_PPG_BLE_SERVICE \r
-        || uuid_tmp == 0x3802 ) \r
+        || uuid_tmp == ALIPAYY_SERVICE_ID\r
+         ) \r
     {\r
-\r
+         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " 0x%x\r\n",uuid_tmp);\r
     }else{\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "svr_ble_bt_gatts_service_add_cb UUID not supported 0x%x\r\n",uuid_tmp);\r
         return ;\r
@@ -715,8 +716,8 @@ static void svr_ble_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid,
     bt_uuid_t hid_service_uuid = {0};\r
     bts_data_to_uuid_len2(BLE_UUID_HUMAN_INTERFACE_DEVICE, &hid_service_uuid);\r
 \r
-    bt_uuid_t alipay_service_uuid = {0};\r
-    bts_data_to_uuid_len2(0x3802, &alipay_service_uuid);\r
+    // bt_uuid_t alipay_service_uuid = {0};\r
+    // bts_data_to_uuid_len2(ALIPAYY_SERVICE_ID, &alipay_service_uuid);//0x3802\r
 \r
     bt_uuid_t factory_service_uuid = {0};\r
     bts_data_to_uuid_len2(BLE_UUID_ATE_FACTORYTEST_SERVICE, &factory_service_uuid);\r
@@ -752,11 +753,11 @@ static void svr_ble_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid,
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ppg ble service svr_ble_bt_gatts_service_add_cb ret:%d\r\n",ret);\r
     }\r
 \r
-    if (ble_gatts_cmp_uuid(uuid, &alipay_service_uuid) == true){\r
-        alipay_add_chart_decr_recv_cmd1(server_id,srv_handle);\r
-        ret = gatts_start_service(server_id, srv_handle);\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "alipay_service_uuid service svr_ble_bt_gatts_service_add_cb ret:%d\r\n",ret);\r
-    }\r
+    // if (ble_gatts_cmp_uuid(uuid, &alipay_service_uuid) == true){\r
+    //     alipay_add_chart_decr_recv_cmd1(server_id,srv_handle);\r
+    //     ret = gatts_start_service(server_id, srv_handle);\r
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "alipay_service_uuid service svr_ble_bt_gatts_service_add_cb ret:%d\r\n",ret);\r
+    // }\r
     \r
 }\r
 uint16_t alipay_handle = 0;\r
@@ -1162,6 +1163,8 @@ static void svr_ble_register_service(void)
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "wrapper_gatts_add_service ret: 0x%x", ret);\r
 #endif\r
 \r
+    svr_alipay_bluetooth_init(serverId);\r
+\r
     return;\r
 }\r
 bool ble_gatts_cmp_uuid(const bt_uuid_t *tgt_uuid, const bt_uuid_t *src_uuid)//比较源uuid和给定的uuid是否匹配\r
@@ -1192,6 +1195,7 @@ void ble_unregist_server(void)
     \r
 }\r
 \r
+\r
 void svr_ble_bluetooth_init(void)\r
 {\r
     memset(&phone_addr,0,sizeof(bd_addr_t));\r
@@ -1207,7 +1211,7 @@ void svr_ble_bluetooth_init(void)
     // }\r
 \r
     //清除上次内容\r
-    wrapper_gatts_clear_service();\r
+  \r
 \r
     // osDelay(100);\r
     srv_ble_server_register_gap_ble_callbacks();\r
@@ -1220,7 +1224,6 @@ void svr_ble_bluetooth_init(void)
     // ble_hid_server_init();\r
     #endif\r
 \r
-    // svr_alipay_bt_init_gatts();\r
     ble_factory_server_init(g_ble_server_id);\r
     \r
     ble_ppgtest_server_init(g_ble_server_id);\r