From: SnickerSun Date: Fri, 24 May 2024 12:35:08 +0000 (+0800) Subject: 协议接收函数已经验证,取消以前的接收方案 X-Git-Tag: release_V1.2.70_20241020_135402~1107 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=effa6509de454833458541260bf9243762451928;p=mirrors%2FFD230.git 协议接收函数已经验证,取消以前的接收方案 --- diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c index 36dd0d8e6..b8ac042ef 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c @@ -371,8 +371,6 @@ uint8_t cmd_data[17]; uint8_t *recvData; #include "los_memory.h" - -#if USE_PROTOCOL_EN_DE_BY_SNICKER #define MAX_BLE_MSG_PACKAGE_LEN (1024*5) //包缓存最大5k #define BLE_MSG_TMP_FILE_NAME "/user/userdata/ble_tmp_buf_%04X" typedef struct @@ -401,27 +399,6 @@ static ble_read_data handle_l[MAX_HANDLE_NUM]={0}; errcode_t cancel_recv_file(ble_read_data *buffer_handle); -#else - -typedef struct -{ - uint8_t *data; - int handle; - int data_len ; - int totalDataLen; - uint8_t cmd_data[17]; - uint8_t crcvalue; -} ble_read_data; - -#define MAX_HANDLE_NUM 10 -//LITE_OS_SEC_TEXT_MINOR UINT32 LOS_MemInfoGet(VOID *pool, LOS_MEM_POOL_STATUS *poolStatus) -//根据特征值分开组合读取的数据,并处理 -static ble_read_data handle_l[MAX_HANDLE_NUM]={0}; - -#endif - - - @@ -1959,8 +1936,6 @@ void GetWeatherCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,ui } - -#if USE_PROTOCOL_EN_DE_BY_SNICKER void getUserInfo(ble_read_data *buffer_handle,uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)// { @@ -2011,67 +1986,7 @@ void getUserInfo(ble_read_data *buffer_handle,uint16_t cmd,uint8_t *data,uint16_ ble_reply_cmd(USER_INFOR_CMD,0);//crc error } } -#else -//APP下发设置用户数据 -void getUserInfo(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)// -{ - - // 用户数据同步死机, - uint8_t value[19]; - memset(value,0,19); - uint32_t tmp = 1; - value[0] =0x72; - value[1] =0x02; - value[2] =0x01; - memcpy(value+3,&tmp,4); - memcpy(value+7,&tmp,4); - memcpy(value+11,&tmp,4); - memcpy(value+15,&tmp,2); - if(Check_CRC(data,len,crcvalue)) - { - printf("getUserInfo:!!!!!!!!\r\n"); - msg_user_info_t user_info={0}; - ble_recv_msg_callback_t func = ble_recv_get_send_msg_callback_func(); - memset(&user_info,0,sizeof(msg_user_info_t)); - - for(uint8_t i = 0;i event_size-17)//多包数据第一包处理,大于一包的数据长度 514-17=494 - { - packdataLen = event_size-17;//多包数据第一包数据不带CRC校验和的 - handle_l[i].data = ym_malloc(totalDataLen+1); - if(handle_l[i].data != NULL){ - printf("bleDataRecv long data %d\r\n",totalDataLen); - if(handle_l[i].totalDataLen < packdataLen) - { - printf("packdataLen error!!!!!!!%d\r\n",packdataLen); - packdataLen=handle_l[i].totalDataLen; - } - memcpy(handle_l[i].data,totalData+17,packdataLen);//从第十七个字节开始接收数据data - handle_l[i].data_len = packdataLen;//当前包的数据长度 - memset(handle_l[i].cmd_data,0,17); - memcpy(handle_l[i].cmd_data,totalData,17); - } - }else{//一包数据 - printf("bleDataRecv short data %d\r\n",totalDataLen); - packdataLen = event_size-18; - if(totalDataLen != 0) - { - handle_l[i].data =ym_malloc(totalDataLen+1); - memcpy(handle_l[i].data,totalData+17,packdataLen); - } - memset(handle_l[i].cmd_data,0,17); - memcpy(handle_l[i].cmd_data,totalData,17); - handle_l[i].crcvalue = totalData[event_size-1]; - handle_l[i].data_len = packdataLen; - read_data_tmp = &handle_l[i];//完整包,遍历后需要处理数据 - } - }else//多包数据存储 - { - - uint32_t packStartAddrLen = handle_l[i].data_len;//每一包接收的数据长度起始地址 - handle_l[i].data_len = handle_l[i].data_len+event_size; - printf("muilt 133333 handle_l[i].data_len:%d\r\n",handle_l[i].data_len); - if(handle_l[i].data_len >= handle_l[i].totalDataLen)//接收完整的数据 - { - handle_l[i].data_len = handle_l[i].data_len -1;//最后一包要减去最后的CRC的那一位 - //这是最后一包的起始地址 - if(handle_l[i].totalDataLen -packStartAddrLen < event_size-1) - { - printf("packStartAddrLen error!!!!!!!%d\r\n",packStartAddrLen); - event_size=handle_l[i].totalDataLen-packStartAddrLen; - } - memcpy(handle_l[i].data+packStartAddrLen,totalData,event_size-1);//为了不把CRC copy到data所以多一步操作 - handle_l[i].crcvalue = totalData[event_size-1];//最后一个字节为总的数据包的CRC - read_data_tmp = &handle_l[i]; - }else{ //还没接收完 有 3 4 5包......... - if(handle_l[i].totalDataLen -packStartAddrLen < event_size) - { - printf("event_size error!!!!!!!%d\r\n",event_size); - event_size=handle_l[i].totalDataLen-packStartAddrLen; - } - memcpy(handle_l[i].data+packStartAddrLen,totalData,event_size); //这是不带CRC数据说明还有下一包直接copy - } - } - break; - } - - } - if(read_data_tmp)//获取到完整数据,处理数据且释放内存 - { - printf("pack data start!!!!!\r\n"); - //处理数据.. - if(read_data_tmp->data) - { - read_data_tmp->data[read_data_tmp->totalDataLen]=0; - } - bleLongRecvData(read_data_tmp->data,read_data_tmp->totalDataLen,read_data_tmp->cmd_data,NULL,read_data_tmp->crcvalue); - if(read_data_tmp->data)//只有数据不为NULL的才释放 - { - ym_free(read_data_tmp->data); - } - read_data_tmp->data_len = 0; - read_data_tmp->data = NULL; - read_data_tmp->totalDataLen = 0; - //read_data_tmp->handle = 0; - read_data_tmp->crcvalue = 0; - memset(read_data_tmp->cmd_data,0,17); - printf("pack data end!!!!!!\r\n"); - } - - -} void free_ble_data(void)//以防断开蓝牙没有释放数据类型 { return; @@ -5671,7 +5392,6 @@ void free_ble_data(void)//以防断开蓝牙没有释放数据类型 } -#endif //接收app下发的原始数据 void revBleOldData(uint8_t *buf, uint16_t event_size,uint16_t handle)//每包的数据大小 diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h index 6a6f0ab93..3073a4673 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h @@ -94,12 +94,6 @@ void cameram_send_data(void); #define FIND_PHONE_CMD 0x0501 //同步睡眠历史数据 - -#define USE_PROTOCOL_EN_DE_BY_SNICKER 1 - -#if USE_PROTOCOL_EN_DE_BY_SNICKER - - #define MSG_DIRECTION_RECV 0x73 #define MSG_DIRECTION_RECV_ANDROID 0x4A #define MSG_DIRECTION_SEND 0x72 @@ -143,7 +137,7 @@ errcode_t ble_reply_cmdarr(uint16_t msg_cmd,uint8_t *replydata,uint16_t replydat errcode_t ble_reply_msg(uint8_t msg_cmdtype,uint8_t msg_cmdid,uint8_t replydata); errcode_t ble_reply_msgarr(uint8_t msg_cmdtype,uint8_t msg_cmdid,uint8_t *replydata,uint16_t replydata_len); -#endif + #pragma pack(1) typedef struct {