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
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
#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
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
#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
* @brief alipay BLE module initialization.
* @return NULL.
*/
-void svr_alipay_bluetooth_init(void);
+void svr_alipay_bluetooth_init(uint8_t);
/*
* @brief alipay svr init.
#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
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
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);
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);
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);
}
}
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
{
}
fclose(fp);
+
cJSON* itemJSON = cJSON_CreateObject();
cJSON_AddNumberToObject(itemJSON,"uid",file_index);
cJSON_AddStringToObject(itemJSON,"name",fileName.c_str());
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
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
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
|| 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
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
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
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
\r
}\r
\r
+\r
void svr_ble_bluetooth_init(void)\r
{\r
memset(&phone_addr,0,sizeof(bd_addr_t));\r
// }\r
\r
//清除上次内容\r
- wrapper_gatts_clear_service();\r
+ \r
\r
// osDelay(100);\r
srv_ble_server_register_gap_ble_callbacks();\r
// 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