if(0!=remove(PHONE_WATCH_CONFIG_PATH))\r
{\r
printf("json remove fail\r\n");\r
- } \r
+ }\r
+ set_ble_falg(0);\r
\r
}\r
void sendBindInfor(uint8_t *crcnum)\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sendParieSuccess:0x%x-0x%x-0x%x-0x%x-0x%x-0x%x\r\n",addr->addr[0],addr->addr[1],addr->addr[2],addr->addr[3],addr->addr[4],addr->addr[5]);\r
if(first_bond == 1 && phoneDataFlag == 1)//第一次连接绑定\r
{\r
+ set_ble_falg(1);\r
uint8_t value[25];\r
uint8_t length = 0;\r
memset(value,0,25);\r
sendBleData(sendBuf,19);\r
\r
}\r
+//发送查找手机\r
+void senfindphoneSend(uint8_t flag)\r
+{\r
+ uint32_t tmp = 1;\r
+ uint16_t tmp_data = 1;\r
+ uint8_t sendBuf[19];\r
+ memset(sendBuf,0,19);\r
+ sendBuf[0] = 0x72;\r
+ sendBuf[1] = 0x05;\r
+ sendBuf[2] = 0x01; //3\r
+ memcpy(sendBuf+3,&tmp,4);\r
+ memcpy(sendBuf+7,&tmp,4);\r
+ memcpy(sendBuf+11,&tmp,4); //15\r
+ memcpy(sendBuf+15,&tmp_data,2); //17\r
+ sendBuf[17] = flag;\r
+ sendBuf[18] = Calculate_CRC(sendBuf,18);\r
+ sendBleData(sendBuf,19);\r
+}\r
+\r
static void jsonCheck_time(uint8_t *buf)//json 格式解析\r
{\r
char time_data[24];\r
void getTRAIN_TARGETInfo(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//\r
{\r
\r
+}\r
+\r
+//电话薄解析函数\r
+void Parse_addressbook_bin(uint8_t *crcnum,uint16_t len)\r
+{\r
+ int num=crcnum[0];//人数\r
+ int offset=1;\r
+ while (num)\r
+ {\r
+ uint8 sex = crcnum[offset];\r
+ printf("性别: %d\r\n",sex);\r
+ offset=offset+1;\r
+ uint8 name_len=crcnum[offset];\r
+ printf("name_len %d\r\n",name_len);\r
+ char name[32]={0};\r
+ if(name_len==0)\r
+ {\r
+ name_len=strlen("未知");\r
+ printf("未知\r\n");\r
+ }\r
+ else\r
+ {\r
+ memcpy(name,&crcnum[offset+1],name_len);\r
+ printf("姓名: %s\r\n",name);\r
+ // for(int i=0;i<name_len;i++)\r
+ // {\r
+ // printf(" %X ",name[i]);\r
+ // }\r
+ // printf("r\n");\r
+ }\r
+ offset=offset+name_len+1;\r
+ uint8 phone_num=crcnum[offset]; \r
+ offset=offset+1;\r
+ for(int i=0;i<phone_num;i++)\r
+ { \r
+\r
+ uint8 phonen_len=crcnum[offset];\r
+ char phonen_name[32]={0};\r
+ memcpy(phonen_name,&crcnum[offset+1],phonen_len);\r
+ printf("号码: %s\r\n",phonen_name);\r
+ // for(int i=0;i<phonen_len;i++)\r
+ // {\r
+ // printf(" %X ",phonen_name[i]);\r
+ // }\r
+ // printf("r\n");\r
+\r
+ offset=offset+phonen_len+1;\r
+ }\r
+ for(int i=0;i<phone_num;i++)\r
+ {\r
+ uint8 add = crcnum[offset];\r
+ printf("归属地长度: %d\r\n",add);\r
+ memcpy(name,&crcnum[offset+1],add);\r
+ printf("归属地: %s\r\n",name);\r
+ offset=offset+add+1;\r
+ uint8 yun = crcnum[offset];\r
+ memcpy(name,&crcnum[offset+1],yun);\r
+ printf("运营商: %s\r\n",name);\r
+ offset=offset+yun+1;\r
+ }\r
+ \r
+ num--;\r
+ }\r
+ \r
+}\r
+void getAPPaddressbook(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//\r
+{\r
+ uint8_t value[19];\r
+ memset(value,0,19);\r
+ uint32_t tmp = 1;\r
+ value[0] =0x72;\r
+ value[1] =0x02;\r
+ value[2] =0x0b;\r
+ memcpy(value+3,&tmp,4);\r
+ memcpy(value+7,&tmp,4);\r
+ memcpy(value+11,&tmp,4);\r
+ memcpy(value+15,&tmp,2);\r
+ \r
+ if(Check_CRC(crcnum,len,crcvalue))\r
+ {\r
+ //解析,传来的二进制数据\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "");\r
+ Parse_addressbook_bin(crcnum,len);\r
+ \r
+ value[17] = 0x01;\r
+ value[18] = Calculate_CRC(value,18);\r
+ sendBleData(value,19);\r
+ }else{\r
+ value[17] = 0x00;\r
+ value[18] = Calculate_CRC(value,18);\r
+ sendBleData(value,19);\r
+ }\r
+\r
}\r
//02 类型\r
void type2AE4Data(uint8_t *buf_cmd,uint8_t *data,uint16_t datalen,uint8_t *totalData,uint8_t crcvalue)\r
break;\r
case SET_TRAIN_TARGET_CMD:\r
\r
+ break;\r
+ case SET_address_book_CMD:\r
+ getAPPaddressbook(typeID,data,datalen,totalData,crcvalue);\r
break;\r
case SET_ALARM_DATA_CMD:\r
GetAlarmDataCmd(typeID,data,datalen,totalData,crcvalue);\r
sendBleData(value,19);\r
}\r
}\r
-\r
+uint8 read_hart_jsondata(uint8 day)\r
+{\r
+ // char path[64]={0};\r
+ // sprintf(path,"%s/%d",HEALTH_JSON_PATH,day);\r
+ // fopen();\r
+ // {\r
+ return 0;\r
+ // }\r
+}\r
//同步心率历史数据\r
static void heartDataCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
{\r
memcpy(value+15,&tmp_data,2);\r
if(Check_CRC(crcnum,len,crcvalue))\r
{\r
- uint32_t data_len = 0;\r
- for(uint16_t i = 0;i<5;i++)\r
- {\r
- uint32_t time = 1710484844+i*3600;\r
- uint8_t hr = 70+i*5;//1 \r
- memcpy(value+17+data_len,&time,4);\r
- data_len=data_len+4;//4 6\r
- memcpy(value+17+data_len,&hr,1);//1 3 5 7 9\r
- data_len=data_len+1;//6 \r
- }\r
- printf("data_len:%d",data_len);\r
+ read_hart_jsondata(crcnum[17]);\r
+ \r
+ // uint32_t data_len = 0;\r
+ // for(uint16_t i = 0;i<5;i++)\r
+ // {\r
+ // uint32_t time = 1710484844+i*3600;\r
+ // uint8_t hr = 70+i*5;//1 \r
+ // memcpy(value+17+data_len,&time,4);\r
+ // data_len=data_len+4;//4 6\r
+ // memcpy(value+17+data_len,&hr,1);//1 3 5 7 9\r
+ // data_len=data_len+1;//6 \r
+ // }\r
+ // printf("data_len:%d",data_len);\r
// memcpy(&value[17],data_buf,30);\r
// value[17] = 1;// \r
value[17+data_len] = Calculate_CRC(value,data_len+17);\r
GetSynDataEndCmd(cmd,data,datalen,totaldata,crcvalue);\r
break;\r
case SYN_HEART_HISTORY_DATA_CMD://同步心率历史数据\r
+ heartDataCmd(cmd,data,datalen,totaldata,crcvalue);\r
+ break;\r
case SYN_SPO2_HISTORY_DATA_CMD://同步血氧历史数据\r
case SYN_STEP_HISTORY_DATA_CMD: //同步步数历史数据\r
case SYN_FAT_BURN_HISTORY_DATA_CMD://同步燃脂时间数据\r