#include "errcode.h"
#include "bleEvent.h"
-struct ancs_data_info_t
-{
- int uid;//uid 消息唯一编号
- int appid;//消息类型:1:微信 2:QQ 3:短信 4:其他
- char title[256];//消息发送者
- char msg[300];//消息内容
- char time[20];//时间戳"20240417T102400" 用T分隔日期和时间,显示需要注意
- int hasCode;//消息hash code
-};
-
-enum PAIRING
-{
- DEVICEBIND = 0,//
- DEVICEUNBIND,//设备解绑通知
- DeviceUnBindingRequest,//设备解绑请求(与新设备连接)通知
- REBOOT,
- SHUTDOWN
-};
-// enum class ExerciseState
-// {
-// Start = 0,
-// End,
-// Pause,
-// Continue,
-// General,
-// };
-
-/*
-0:结束
-1:开始
-2:暂停
-3:恢复
-*/
-enum TRANING
-{
- END=0,
- START,
- STOP,
- RECOVER,
- SETGOAL,//设置训练目标
- SENDDATA,//获取实时训练数据
- SETAUTO,//开启关闭自动获取实时数据
-};
-
-typedef struct
-{
- uint8_t sportType; //训练项目
- uint8_t sportTagType; //训练目标类型
- uint32_t sportTag; //训练目标
- uint8_t controlauto; //开启关闭自动获取实时数据
- uint8_t controlmd; //训练控制md
-} training_ble;
-
-void set_weather_now_data(int humidity, char* windScale, char* textNight,int uvIndex,int temp,int iconNight);
-
-void set_weather_address_data(int lat, char* atm, char* city,char* subLocality,int lon);
-void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char *textDay,int x);
-
-uint8_t ble_is_ready(void);
-void set_ble_falg(bool falg);
-uint8_t ble_is_connect_ready(void);
-char *addressbook(void);
-void addressbookToRead(char*);
-void addressbookTowrite(void);
-const char *get_health_data_path(void);
-void add_addressbookToRead(char *data);
-
-void set_user_data(msg_user_info_t data);
-
-int get_goal_stepcount(void);
-
-int get_vibrationremiander(void);
-
-int get_SilentMode(void);
-
-void set_goal_stepcount(uint32_t step);
-
-void set_vibrationremiander(uint8_t falg);
-
-void set_SilentMode(uint8_t falg);
-
-void set_traning_updata_freq(uint8_t freq);
+ struct ancs_data_info_t
+ {
+ int uid; // uid 消息唯一编号
+ int appid; // 消息类型:1:微信 2:QQ 3:短信 4:其他
+ char title[256]; // 消息发送者
+ char msg[300]; // 消息内容
+ char time[20]; // 时间戳"20240417T102400" 用T分隔日期和时间,显示需要注意
+ int hasCode; // 消息hash code
+ };
+
+ enum PAIRING
+ {
+ DEVICEBIND = 0,
+ DEVICEUNBIND, // 设备解绑通知
+ DeviceUnBindingRequest, // 设备解绑请求(与新设备连接)通知
+ REBOOT,
+ SHUTDOWN
+ };
+
+ /*
+ 0:结束
+ 1:开始
+ 2:暂停
+ 3:恢复
+ */
+ enum TRANING
+ {
+ END = 0, // 结束训练
+ START, // 开始训练
+ STOP, // 暂停训练
+ RECOVER, // 恢复训练
+ SETGOAL, // 设置训练目标
+ SENDDATA, // 获取实时训练数据
+ };
+
+ typedef struct
+ {
+ uint8_t sportType; // 训练项目
+ uint8_t sportTagType; // 训练目标类型
+ uint32_t sportTag; // 训练目标
+ uint8_t controlmd; // 训练控制md
+ } training_ble;
+
+ void set_weather_now_data(int humidity, char *windScale, char *textNight, int uvIndex, int temp, int iconNight);
+
+ void set_weather_address_data(int lat, char *atm, char *city, char *subLocality, int lon);
+ void set_weather_one_data(int tempMin, int iconDay, int fxDate, int tempMax, char *textDay, int x);
+
+ uint8_t ble_is_ready(void);
+ void set_ble_falg(bool falg);
+ uint8_t ble_is_connect_ready(void);
+ char *addressbook(void);
+ void addressbookToRead(char *);
+ void addressbookTowrite(void);
+ const char *get_health_data_path(void);
+ void add_addressbookToRead(char *data);
+
+ void set_user_data(msg_user_info_t data);
+
+ int get_goal_stepcount(void);
+
+ int get_vibrationremiander(void);
+
+ int get_SilentMode(void);
+
+ void set_goal_stepcount(uint32_t step);
+
+ void set_vibrationremiander(uint8_t falg);
+
+ void set_SilentMode(uint8_t falg);
+ /*设置自动获取实时数据开关*/
+ void set_traning_updata_auto(uint8_t traingauto);
+ /*设置获取实时训练数据频率*/
+ void set_traning_updata_freq(uint8_t freq);
+ /*设置训练最高心率*/
+ void set_traning_heart_max(uint8_t data);
-void set_traning_heart_max(uint8_t data);
#ifdef __cplusplus
#if __cplusplus
}
if(Check_CRC(crcnum,len,crcvalue))\r
{\r
uint8_t autoSportData = crcnum[0];//开关 1开启 0关闭\r
+ /*进行开启关闭操作*/\r
+ printf("进行开启关闭操作 %d\r\n", autoSportData);\r
+ set_traning_updata_auto( autoSportData);\r
+\r
value[17] = 1; //1 操作成功 2 操作失败\r
value[18] = Calculate_CRC(value,18);\r
sendBleData(value,19);\r
- /*进行开启关闭操作*/\r
- training_ble_data.controlmd = SETAUTO;\r
- training_ble_data.controlauto = autoSportData;\r
- printf("开启自动获取 %d\r\n", training_ble_data.controlauto);\r
- CustomEventPublish(TOPIC_EVENT_BLE_TRAINING,(uint8_t*)&training_ble_data,sizeof(training_ble));\r
}else\r
{\r
value[17] = 0;\r
sendBleData(value,19);\r
}\r
}\r
-//设置训练试试数据采集频率\r
+//设置训练数据采集频率\r
static void SetRTDataFreCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
{\r
uint8_t value[19];\r
if(Check_CRC(crcnum,len,crcvalue))\r
{\r
uint8_t Frequence = crcnum[0];//频率单位是s\r
+ /*设置获取频率*/\r
+ printf("设置获取频率 %d\r\n", Frequence);\r
set_traning_updata_freq(Frequence);\r
+\r
value[17] = 1; //1 操作成功 2 操作失败\r
value[18] = Calculate_CRC(value,18);\r
sendBleData(value,19);\r
- /*设置获取频率*/\r
}else\r
{\r
value[17] = 0;\r
\r
\r
\r
-void Read_file_buf_send_bin_Data(uint8_t num,uint16_t id,uint8_t single_data_len,char *data_item)\r
+void Read_file_buf_send_bin_Data(uint8_t num,uint16_t id,char *data_item)\r
{\r
sendbigDataBufState = true;//分包同步数据不允许打断\r
char *buf=(char *)malloc(sizeof(char)*512);\r
const char *path=NULL;\r
+ uint8_t timeBit = 4;//默认是4个字节的时间戳\r
+ uint8_t dataBit = 1;//默认是1个字节的数据\r
switch (id)\r
{\r
case 0x40://同步心率历史数据\r
path=get_health_data_path();\r
+ dataBit = 1;//心率数据字节1个字节 uint8_t\r
break;\r
case 0x41://同步血氧历史数据\r
path=NULL;\r
+ dataBit = 1;//血氧数据字节1个字节 uint8_t\r
break;\r
case 0x43: //同步步数历史数据\r
path=NULL;\r
+ dataBit = 4;//心率数据字节4个字节 uint32_t\r
break;\r
case 0x44://同步燃脂时间数据\r
path=NULL;\r
{\r
cJSON * heart_data_item=cJSON_GetArrayItem(heart_data_list,i);\r
uint32 timestamp=cJSON_GetObjectItem(heart_data_item,"timestamp")->valueint;\r
- uint8_t value=cJSON_GetObjectItem(heart_data_item,"heart_value")->valueint;\r
- printf("heart_value :%d\r\n",value);\r
+ uint32_t value=cJSON_GetObjectItem(heart_data_item,"heart_value")->valueint;\r
+ // value =450;\r
+ printf("value :%d\r\n",value);\r
printf("timestamp :%d\r\n",timestamp);\r
- memcpy(send_buf+send_len,×tamp,4);\r
- send_len+=4;\r
- memcpy(send_buf+send_len,&value,1);\r
- send_len+=1;\r
+ memcpy(send_buf+send_len,×tamp,timeBit);\r
+ send_len+=timeBit;\r
+ memcpy(send_buf+send_len,&value,dataBit);\r
+ send_len+=dataBit;\r
\r
if(((i+1)%num==0 && i!=0) || (item_num-1==i))\r
{\r
EACH_DATA_LEN = HEART_DATA_LEN;\r
num=(ble_nus_max_data_len-18)/HEART_DATA_LEN;\r
printf("同步心率数据,每包最多:%d 条数据\r\n",num);\r
- Read_file_buf_send_bin_Data(num,0x40,EACH_DATA_LEN,"heart_data_list");\r
+ Read_file_buf_send_bin_Data(num,0x40,"heart_data_list");\r
break;\r
case 0x41://同步血氧历史数据\r
printf("同步血氧数据\r\n");\r
EACH_DATA_LEN = SPO2_DATA_LEN;\r
num=(ble_nus_max_data_len-18)/EACH_DATA_LEN;\r
- Read_file_buf_send_bin_Data(num,0x41,EACH_DATA_LEN,"heart_data_list");\r
+ Read_file_buf_send_bin_Data(num,0x41,"heart_data_list");\r
break;\r
case 0x43: //同步步数历史数据\r
EACH_DATA_LEN = STEP_DATA_LEN;\r
num=(ble_nus_max_data_len-18)/EACH_DATA_LEN;\r
- Read_file_buf_send_bin_Data(num,0x43,EACH_DATA_LEN,"heart_data_list");\r
+ Read_file_buf_send_bin_Data(num,0x43,"heart_data_list");\r
\r
break;\r
case 0x44://同步燃脂时间数据\r
EACH_DATA_LEN = FATTIME_DATA_LEN;\r
num=(ble_nus_max_data_len-18)/EACH_DATA_LEN;\r
- Read_file_buf_send_bin_Data(num,0x44,EACH_DATA_LEN,"heart_data_list");\r
+ Read_file_buf_send_bin_Data(num,0x44,"heart_data_list");\r
break;\r
case 0x45://同步站立历史数据\r
EACH_DATA_LEN = STAND_DATA_LEN;\r
num=(ble_nus_max_data_len-18)/EACH_DATA_LEN;\r
- Read_file_buf_send_bin_Data(num,0x45,EACH_DATA_LEN,"heart_data_list");\r
+ Read_file_buf_send_bin_Data(num,0x45,"heart_data_list");\r
break;\r
case 0x46://同步卡路里历史数据\r
EACH_DATA_LEN = KCAL_DATA_LEN;\r
num=(ble_nus_max_data_len-18)/EACH_DATA_LEN;\r
- Read_file_buf_send_bin_Data(num,0x46,EACH_DATA_LEN,"heart_data_list");\r
+ Read_file_buf_send_bin_Data(num,0x46,"heart_data_list");\r
break;\r
case 0x47://同步距离历史数据\r
EACH_DATA_LEN = DIS_DATA_LEN;\r
num=(ble_nus_max_data_len-18)/EACH_DATA_LEN;\r
- Read_file_buf_send_bin_Data(num,0x47,EACH_DATA_LEN,"heart_data_list");\r
+ Read_file_buf_send_bin_Data(num,0x47,"heart_data_list");\r
break;\r
case 0x49://同步基础训练历史数据\r
EACH_DATA_LEN = DIS_DATA_LEN;\r
num=(ble_nus_max_data_len-18)/EACH_DATA_LEN;\r
- Read_file_buf_send_bin_Data(num,0x49,EACH_DATA_LEN,"heart_data_list");\r
+ Read_file_buf_send_bin_Data(num,0x49,"heart_data_list");\r
break;\r
case 0x4b://睡眠历史数据\r
EACH_DATA_LEN = DIS_DATA_LEN;\r
num=(ble_nus_max_data_len-18)/EACH_DATA_LEN;\r
- Read_file_buf_send_bin_Data(num,0x4b,EACH_DATA_LEN,"heart_data_list");\r
+ Read_file_buf_send_bin_Data(num,0x4b,"heart_data_list");\r
\r
break;\r
default:\r