uint8_t mac_data[6];\r
memset(mac_data,0,6);\r
GetwatchSaveMac(&mac_data,&MacType);\r
- \r
+\r
bd_addr_t addr={0};\r
get_phone_addr(&addr,g_ble_conn_id);\r
\r
{\r
uint32_t timetamp=0;\r
memcpy_s((void*)&timetamp,4,data,4);\r
- ble_data_type type_={0x02,0x4B,0,1,1};\r
- send_big_data(type_,NULL,0);\r
+ char path[128]={0};\r
+ if(get_training_heart_path(path,timetamp,128))\r
+ {\r
+ FILE *fp= fopen(path,"rb+");\r
+ uint32_t file_size=0;\r
+ if(fp==NULL)\r
+ {\r
+ printf("打开文件失败 %s \r\n",path);\r
+\r
+ ble_data_type type_={0x02,0x4b,0,1,1};\r
+ send_big_data(type_,NULL,0);\r
+\r
+ return ;\r
+ }\r
+ fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾\r
+ file_size = ftell(fp); // 获取当前文件指针位置,即文件大小\r
+ fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头\r
+\r
+ int num=(ble_nus_max_data_len-18);\r
+ if(num>482)num=482;\r
+\r
+ int num_check=file_size%6;\r
+ if(num_check!=0)\r
+ {\r
+ printf("数据有误 %d \r\n",cmd);\r
+\r
+ ble_data_type type_={0x02,0x4b,0,1,1};\r
+ send_big_data(type_,NULL,0);\r
+ return ;\r
+ }\r
+ \r
+ char* buf = (char *)ym_malloc(sizeof(char)*num+1);\r
+ if(buf==NULL){fclose(fp); return ;}\r
+\r
+ uint32_t pack=1;\r
+\r
+ if(file_size%num==0)\r
+ pack=data_len/num;\r
+ else\r
+ pack=data_len/num+1;\r
+\r
+ uint32_t pack_id=1;\r
+ uint32_t read_size=0;\r
+ do\r
+ {\r
+ memset_s(buf,num+1,0,num+1);\r
+ read_size=fread(buf,1,num,fp);\r
+ if(read_size!=0)\r
+ {\r
+ ble_data_type type_={0x02,0x4b,file_size,pack,pack_id};\r
+ send_big_data(type_,buf,read_size);\r
+ }\r
+ pack_id++;\r
+ } while (read_size==num);\r
+ fclose(fp);\r
+ free(buf);\r
+\r
+ }\r
}\r
\r
}\r
{\r
uint32_t timetamp=0;\r
memcpy_s((void*)&timetamp,4,data,4);\r
- ble_data_type type_={0x02,0x18,0,1,1};\r
- send_big_data(type_,NULL,0);\r
- }\r
+ char path[128]={0};\r
+ if(get_training_spead_path(path,timetamp,128))\r
+ {\r
+ FILE *fp= fopen(path,"rb+");\r
+ uint32_t file_size=0;\r
+ if(fp==NULL)\r
+ {\r
+ printf("打开文件失败 %s \r\n",path);\r
+\r
+ ble_data_type type_={0x02,0x18,0,1,1};\r
+ send_big_data(type_,NULL,0);\r
+\r
+ return ;\r
+ }\r
+ fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾\r
+ file_size = ftell(fp); // 获取当前文件指针位置,即文件大小\r
+ fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头\r
+\r
+ int num=(ble_nus_max_data_len-18);\r
+ if(num>482)num=482;\r
+\r
+ int num_check=file_size%6;\r
+ if(num_check!=0)\r
+ {\r
+ printf("数据有误 %d \r\n",cmd);\r
+\r
+ ble_data_type type_={0x02,0x18,0,1,1};\r
+ send_big_data(type_,NULL,0);\r
+ return ;\r
+ }\r
+ \r
+ char* buf = (char *)ym_malloc(sizeof(char)*num+1);\r
+ if(buf==NULL){fclose(fp); return ;}\r
+\r
+ uint32_t pack=1;\r
+ if(file_size%num==0)\r
+ pack=data_len/num;\r
+ else\r
+ pack=data_len/num+1;\r
+ uint32_t pack_id=1;\r
+ uint32_t read_size=0;\r
+ do\r
+ {\r
+ memset_s(buf,num+1,0,num+1);\r
+ read_size=fread(buf,1,num,fp);\r
+ if(read_size!=0)\r
+ {\r
+ ble_data_type type_={0x02,0x18,file_size,pack,pack_id};\r
+ send_big_data(type_,buf,read_size);\r
+ }\r
+ \r
+\r
+ //send_big_data(1,buf,read_size,file_size,pack_id,pack,id,1);\r
+ pack_id++;\r
+ } while (read_size==num);\r
+\r
+ fclose(fp);\r
+ free(buf);\r
+\r
+ }\r
\r
+ } \r
}\r
else\r
{\r