float distancedata = (float)get_distance_data() / 1000.0;
memset((void *)distancenewstr, 0, 20);
- sprintf_s(distancenewstr, 20, "%f", distancedata);
+ sprintf_s(distancenewstr, 20, "%0.1f", distancedata);
return distancenewstr;
}
}\r
}\r
\r
-void send_big_data(uint8_t flag, char *data, int datalen, int total, uint32_t Packet_id, uint32_t packet_total, uint8_t type_id, uint8_t type)\r
+void send_big_data(uint8_t flag, char *data, uint16_t datalen, uint32_t total, uint32_t Packet_id, uint32_t packet_total, uint8_t type_id, uint8_t type)\r
{\r
// 动态分配内存空间,防止堆栈溢出\r
uint8_t *buf = ym_malloc(17 + datalen + 1); \r
}\r
else if(buf[offset]==0)\r
{\r
- offset++;\r
+ printf("AI 解析失败\r\n");\r
+ offset++;\r
}\r
}\r
\r
}\r
}\r
\r
-#define AI_RECORD_PATH "/user/userdata/AiRecording/AIAudio.pcm"\r
+#ifdef AI_USE_PCM\r
+#define AI_RECORD_PCM_PATH "/user/userdata/AiRecording/AIAudio.pcm"\r
+#else\r
+#define AI_RECORD_SBC_PATH "/user/userdata/AiRecording/AIAudio.sbc"\r
+#endif\r
\r
bool get_AI_PATH_and_size(char *path,uint32_t *size)\r
{\r
- memcpy((void*)path,AI_RECORD_PATH,strlen(AI_RECORD_PATH));\r
+ #ifdef AI_USE_PCM\r
+ memcpy((void*)path,AI_RECORD_PCM_PATH,strlen(AI_RECORD_PCM_PATH));\r
+ #else\r
+ #define AI_RECORD_SBC_PATH "/user/userdata/AiRecording/AIAudio.sbc"\r
+ #endif\r
FILE *fp= fopen(path,"r+");\r
if(fp)\r
{\r
return false;\r
}\r
}\r
-#define SEND_AIVOICE_SPEED 10\r
+#define SEND_AIVOICE_SPEED 30\r
//APP获取录音文件,录音文件上传\r
static void GetAiRecordCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
{\r
{\r
int num=(ble_nus_max_data_len-18); \r
if(num>482)num=482;\r
- sendbigDataBufState = true;//分包同步数据不允许打断\r
\r
char *data= (char *)malloc(num+1);\r
\r
printf("fopen fail %s\r\n",file_name);\r
goto GetAiRecordFail;\r
}\r
-\r
do\r
{\r
memset_s(data,num+1,0,num+1);\r
} while (read_size==num);\r
free(data);\r
fclose(fp);\r
- sendbigDataBufState = false;\r
- \r
- \r
}else\r
{\r
GetAiRecordFail:\r
value[18] = Calculate_CRC(value,18);\r
sendBleData(value,19);\r
}\r
- sendbigDataBufState = false;\r
}\r
\r
\r
set_phone_info(addr);\r
\r
//扫描ios的ANCS服务,扫描到服务后会自动建立连接,并订阅服务\r
- // if(get_notify_switch())\r
- // ble_ancs_client_cmd_setup_and_subscribe(g_ble_conn_id);\r
+ if(get_notify_switch())\r
+ ble_ancs_client_cmd_setup_and_subscribe(g_ble_conn_id);\r
+\r
+ //int ret= a2dp_snk_connect(addr);\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x playing_state: %x\n",\r
+ // g_bd_addr.addr[3], g_bd_addr.addr[2], g_bd_addr.addr[1], g_bd_addr.addr[0], g_bd_addr.type); /* 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
errcode_t ret = gatts_notify_indicate(g_ble_server_id, g_ble_conn_id, &data_info);\r
if(ret!=ERRCODE_SUCC)\r
{\r
- gatts_notify_indicate(g_ble_server_id, g_ble_conn_id, &data_info);\r
+ msleep(50);\r
+ ret=gatts_notify_indicate(g_ble_server_id, g_ble_conn_id, &data_info);\r
}\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gatts_notify_indicate ret:0x%x. serverid:%u,conn_id:%u,handle:%u.data_len:%d", ret, g_ble_server_id,\r
g_ble_conn_id, g_ble_server_handle,data_len);\r
return ret; \r
}\r
\r
-//static uint8_t flag=1;\r
+static uint8_t flag=1;\r
static void svr_ble_bt_gatts_req_read_cb(uint8_t server_id, uint16_t conn_id, gatts_req_read_cb_t *read_cb_para,\r
errcode_t status)\r
{\r
// if(flag==0)\r
// ble_ancs_client_cmd_setup_and_subscribe(g_ble_conn_id);\r
// else if(flag==1)\r
- // ble_ancs_client_subscribe_notify(g_ble_conn_id,1);\r
+ // a2dp_snk_connect(&disconect_addr);//ble_ancs_client_subscribe_notify(g_ble_conn_id,1);\r
// else if(flag==2)\r
// ble_ancs_client_subscribe_data(g_ble_conn_id,1);\r
// else if (flag==3)\r