\r
#include "bletest.h"\r
#include "custom_utils.h"\r
+#include "custom_runtime.h"\r
+\r
#define DEBUG_TEST (0)\r
#define CRC_CHECK_ERR 0 //crc校验失败\r
#define JSON_CHECK_OK 1 //json解析成功\r
uint8_t crcbuf = 0;\r
crcbuf = lrcValue%256;\r
crcbuf = 256-crcbuf;\r
- crcbuf = crcbuf%256;\r
+ crcbuf = crcbuf%256;\r
return crcbuf;\r
}\r
\r
}\r
lrcValue = calculate_lrc(data,len,0x00);\r
\r
- crcbuf = get_crc_from_lrc(lrcValue);\r
+ crcbuf = get_crc_from_lrc(lrcValue); \r
\r
- WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "Check_CRC ret:0x%x len:%d\r\n",crcbuf,len);\r
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "Check_CRC lrc: 0x%x ,ret crc: 0x%x ,crcvalue 0x%x , len:%d\r\n",lrcValue,crcbuf,crcvalue,len);\r
\r
if(crcbuf == crcvalue)\r
{\r
}\r
else{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Check_CRC false:\r\n");\r
- return false;\r
+ if(uapi_dev_runtime_get_android_connection_status()==1)\r
+ return true;\r
+ else\r
+ return false;\r
}\r
\r
}\r
uint8_t *data;//if buffer_to_file is 1, than data is the filename , else data is the ram buffer.\r
uint8_t crcvalue;\r
uint8_t lrcvalue; //计算crc用的临时变量\r
+ uint8_t lrcvalue2; //计算crc用的临时变量\r
uint32_t last_timestamp;// last package receive time\r
uint8_t receive_file_flag;//1 接收文件 0 不接收文件\r
file_recv_stat_t file_recv_stat;\r
);\r
buffer_handle->file_recv_stat.received_size = 0;\r
buffer_handle->file_recv_stat.lrcvalue = 0;\r
- buffer_handle->receive_file_flag = 1;\r
+ buffer_handle->receive_file_flag = 1;\r
return ERRCODE_SUCC;\r
}else{\r
buffer_handle->receive_file_flag = 0; \r
\r
errcode_t check_header(msg_header_t *header )\r
{\r
- if( (header->direction == MSG_DIRECTION_RECV) \r
+ if( (header->direction == MSG_DIRECTION_RECV || header->direction == MSG_DIRECTION_RECV_ANDROID) \r
&& (header->cmdtype > 0 && header->cmdtype <= 6 )\r
&& (header->cmdid > 0 && header->cmdid <= 0x50 )\r
)\r
if(buffer_handle->file_recv_stat.recv_file_stat <= 0 && buffer_handle->file_recv_stat.file == NULL)\r
{\r
buffer_handle->file_recv_stat.lrcvalue = 0;\r
- if (buffer_handle->file_recv_stat.file_type == 1)\r
+ if (buffer_handle->file_recv_stat.file_type == 1)\r
{\r
buffer_handle->file_recv_stat.file = fopen("/update/update.fwpkg","w+");\r
printf("create file /update/update.fwpkg %X\n",buffer_handle->file_recv_stat.file);\r
if(writtensize == event_size)\r
{\r
buffer_handle->file_recv_stat.lrcvalue = calculate_lrc(data,event_size,buffer_handle->file_recv_stat.lrcvalue);\r
- buffer_handle->file_recv_stat.received_size += event_size;\r
+ buffer_handle->file_recv_stat.received_size += event_size;\r
printf("handle_recv_file received_size %d\n",buffer_handle->file_recv_stat.received_size);\r
\r
}else{\r
\r
if(buffer_handle->buffer_to_file == 0)\r
{\r
- bleLongRecvData(buffer_handle,buffer_handle->data+sizeof(msg_header_t),buffer_handle->totalDataLen,(uint8_t*)(&buffer_handle->cmd_header),NULL,buffer_handle->crcvalue);\r
+ bleLongRecvData(buffer_handle,buffer_handle->data+sizeof(msg_header_t),buffer_handle->totalDataLen,(uint8_t*)(&buffer_handle->cmd_header),buffer_handle->data,buffer_handle->crcvalue);\r
\r
}else{\r
//处理缓存成文件的 \r
//第一帧\r
if (event_size > sizeof(msg_header_t) && check_header(header) == ERRCODE_SUCC )\r
{\r
+\r
+ if (header->direction == MSG_DIRECTION_RECV_ANDROID)\r
+ {\r
+ uapi_dev_runtime_set_android_connection_status(1);\r
+ }else{\r
+ uapi_dev_runtime_set_android_connection_status(0);\r
+ }\r
buffer_handle->cmd_header.direction = header->direction;\r
buffer_handle->cmd_header.cmdtype = header->cmdtype;\r
buffer_handle->cmd_header.cmdid = header->cmdid;\r
* bt_ble_connectstat 设备已连接手机 1连接, 0 未连接
* bt_br_connectstat 经典蓝牙连接状态 0 未连接, 1 连接a2dp 2 连接hfp 3 连接 a2dp+hfp
* bt_earphone_connectstat 连接耳机状态 1连接, 0 未连接
+ * android_app_connected , 0 not connected, 1 android connected
* cat1_runtime cat1实时状态,详见 cat1_runtime_status_t 定义
* */
typedef struct
uint8_t bt_ble_connectstat;
uint8_t bt_br_connectstat;
uint8_t bt_earphone_connectstat;
+ uint8_t android_app_connected;
cat1_runtime_status_t cat1_runtime;
} runtime_status_t;
*/
uint8_t uapi_dev_runtime_get_earphone_connect_stat(void);
+/**
+ * 设置 android app connect status
+*/
+uint8_t uapi_dev_runtime_set_android_connection_status(uint8_t is_android);
+/**
+ * 获取 android app connect status
+*/
+uint8_t uapi_dev_runtime_get_android_connection_status(void);
+
#ifdef __cplusplus
#if __cplusplus
}