switch (type)
{
case 0x43: //同步步数历史数据
- get_now_hour_data(&value,CYWEE_SAVE_DATA_STEP);
- if(value>0)
+
+ if( get_now_hour_data(&value,CYWEE_SAVE_DATA_STEP))
{
- memcpy(buf+size,&creationTime,4);
- size+=4;
- memcpy(buf+size,&value,4);
- size+=4;
+ if(value>0)
+ {
+ memcpy(buf+size,&creationTime,4);
+ size+=4;
+ memcpy(buf+size,&value,4);
+ size+=4;
+ }
}
+
break;
case 0x44://同步燃脂时间数据
- get_now_hour_data(&value,CYWEE_SAVE_DATA_FAT);
- if(value>0)
+ if(get_now_hour_data(&value,CYWEE_SAVE_DATA_FAT))
{
- memcpy(buf+size,&creationTime,4);
- size+=4;
- uint16 temp_value= (value);
- memcpy(buf+size,&(temp_value),2);
- size+=2;
+ if(value>0)
+ {
+ memcpy(buf+size,&creationTime,4);
+ size+=4;
+ int16 temp_value= (value);
+ memcpy(buf+size,&(temp_value),2);
+ size+=2;
+ }
}
+
break;
case 0x45://同步站立历史数据
+
if(get_stand_falg())
{
memcpy(buf+size,&creationTime,4);
break;
case 0x46://同步卡路里历史数据
- get_now_hour_data(&f_value,CYWEE_SAVE_DATA_CALORIES);
- if(f_value>0)
- {
- memcpy(buf+size,&creationTime,4);
- size+=4;
- memcpy(buf+size,&f_value,4);
- size+=4;
+ if(get_now_hour_data(&f_value,CYWEE_SAVE_DATA_CALORIES))
+ {
+ if(f_value>0)
+ {
+ memcpy(buf+size,&creationTime,4);
+ size+=4;
+ memcpy(buf+size,&f_value,4);
+ size+=4;
+ }
}
+
break;
case 0x47://同步距离历史数据
- get_now_hour_data(&f_value,CYWEE_SAVE_DATA_DISTANCE);
- if(f_value>0)
+ if(get_now_hour_data(&f_value,CYWEE_SAVE_DATA_DISTANCE))
{
- memcpy(buf+size,&creationTime,4);
- size+=4;
- memcpy(buf+size,&f_value,4);
- size+=4;
+ if(f_value>0)
+ {
+ memcpy(buf+size,&creationTime,4);
+ size+=4;
+ memcpy(buf+size,&f_value,4);
+ size+=4;
+ }
}
+
break;
default:
break;
#ifdef BLE_LOG\r
printf("bigDataBufState:%d and sendbigDataBufState %d\r\n",bigDataBufState,sendbigDataBufState);\r
#endif\r
- if(bigDataBufState == true || sendbigDataBufState == true)return ERRCODE_FAIL; //在手表发送分包数据时 手表不允许发指令给app\r
if(Bleconnect == true )\r
{\r
ret = svr_ble_bt_gatts_noyify(buf,len);\r
int num=(ble_nus_max_data_len-18);\r
if(num>482)num=482;\r
\r
- int num_check=file_size%6;\r
+ int num_check=file_size%5;\r
if(num_check!=0)\r
{\r
printf("数据有误 %d \r\n",cmd);\r
{\r
free(name);\r
}\r
- \r
+\r
ble_sos_data_save();\r
\r
return true;\r
//手机app下发读设备数据指令\r
void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)\r
{\r
- // if()\r
- // {\r
-\r
- // }\r
+ \r
uint8_t sendBuf[19];\r
memset(sendBuf,0,19);\r
uint8_t type = cmd/256;\r
switch (bleSendTypeID)\r
{\r
case 0x40://同步心率历史数据\r
-\r
+ if(uapi_dev_runtime_get_heartrate_storage_status())\r
+ {\r
+ ble_reply_cmdarr(SYN_HEART_HISTORY_DATA_CMD,NULL,0);\r
+ return;\r
+ }\r
\r
num=(ble_nus_max_data_len-18);\r
if(num>482)num=482;\r
#ifdef BLE_LOG\r
printf("同步心率数据,每包最多:%d 数据 data:%d %d\r\n",num,data[0],len);\r
#endif\r
+ uapi_dev_runtime_set_heartrate_storage_status(1);\r
if(!Read_Health_BIN_file_buf_send_bin_Data(data[0],num,0x40))\r
{\r
ble_data_type type_={0x01,0x40,0,1,1};\r
send_big_data(type_,NULL,0);\r
}\r
+ uapi_dev_runtime_set_heartrate_storage_status(0);\r
//send_big_data(1,NULL,0,0,1,1,0x40,1);\r
\r
break;\r
case 0x41://同步血氧历史数据\r
+ if(uapi_dev_runtime_get_bloodoxygen_storage_status())\r
+ {\r
+ ble_reply_cmdarr(SYN_SPO2_HISTORY_DATA_CMD,NULL,0);\r
+ return;\r
+ }\r
\r
\r
num=(ble_nus_max_data_len-18);\r
if(num>482)num=482;\r
+ uapi_dev_runtime_set_bloodoxygen_storage_status(1);\r
if(!Read_Health_BIN_file_buf_send_bin_Data(data[0],num,0x41))\r
{\r
ble_data_type type_={0x01,0x41,0,1,1};\r
send_big_data(type_,NULL,0);\r
}\r
+ uapi_dev_runtime_set_bloodoxygen_storage_status(0);\r
\r
break;\r
case 0x43: //同步步数历史数据\r
+\r
+ if(uapi_dev_runtime_get_goal_storage_status())\r
+ {\r
+ ble_reply_cmdarr(SYN_STEP_HISTORY_DATA_CMD,NULL,0);\r
+ return;\r
+ }\r
\r
num=(ble_nus_max_data_len-18);\r
if(num>482)num=482;\r
- \r
+ uapi_dev_runtime_set_goal_storage_status(1);\r
Read_BIN_file_buf_send_bin_Data(data[0],num,0x43);\r
+ uapi_dev_runtime_set_goal_storage_status(0);\r
\r
break;\r
case 0x44://同步燃脂时间数据\r
+\r
+ if(uapi_dev_runtime_get_goal_storage_status())\r
+ {\r
+ ble_reply_cmdarr(SYN_FAT_BURN_HISTORY_DATA_CMD,NULL,0);\r
+ return;\r
+ }\r
+\r
num=(ble_nus_max_data_len-18);\r
if(num>482)num=482;\r
+ uapi_dev_runtime_set_goal_storage_status(1);\r
Read_BIN_file_buf_send_bin_Data(data[0],num,0x44);\r
+ uapi_dev_runtime_set_goal_storage_status(0);\r
break;\r
case 0x45://同步站立历史数据\r
\r
+ if(uapi_dev_runtime_get_goal_storage_status())\r
+ {\r
+ ble_reply_cmdarr(SYN_STAND_HISTORY_DATA_CMD,NULL,0);\r
+ return;\r
+ }\r
+\r
+\r
num=(ble_nus_max_data_len-18);\r
if(num>482)\r
{\r
num=482;\r
}\r
+ uapi_dev_runtime_set_goal_storage_status(1);\r
Read_BIN_file_buf_send_bin_Data(data[0],num,0x45);\r
+ uapi_dev_runtime_set_goal_storage_status(0);\r
\r
break;\r
case 0x46://同步卡路里历史数据\r
+ if(uapi_dev_runtime_get_goal_storage_status())\r
+ {\r
+ ble_reply_cmdarr(SYN_KCAL_HISTORY_DATA_CMD,NULL,0);\r
+ return;\r
+ }\r
+\r
num=(ble_nus_max_data_len-18);\r
if(num>482)\r
{\r
num=482;\r
}\r
+ uapi_dev_runtime_set_goal_storage_status(1);\r
Read_BIN_file_buf_send_bin_Data(data[0],num,0x46);\r
+ uapi_dev_runtime_set_goal_storage_status(0);\r
break;\r
case 0x47://同步距离历史数据\r
+\r
+ if(uapi_dev_runtime_get_goal_storage_status())\r
+ {\r
+ ble_reply_cmdarr(SYN_DIS_HISTORY_DATA_CMD,NULL,0);\r
+ return;\r
+ }\r
+\r
num=(ble_nus_max_data_len-18);\r
if(num>482)\r
{\r
num=482;\r
}\r
+ uapi_dev_runtime_set_goal_storage_status(1);\r
Read_BIN_file_buf_send_bin_Data(data[0],num,0x47);\r
+ uapi_dev_runtime_set_goal_storage_status(0);\r
break;\r
case 0x49://同步基础训练历史数据\r
+\r
+ if(uapi_dev_runtime_get_train_storage_status())\r
+ {\r
+ ble_reply_cmdarr(SYN_BASIC_TRANIN_HISTORY_DATA_CMD,NULL,0);\r
+ return;\r
+ }\r
+\r
EACH_DATA_LEN = DIS_DATA_LEN;\r
num=(ble_nus_max_data_len-18);\r
if(num>482)\r
{\r
num=482;\r
}\r
+ uapi_dev_runtime_set_train_storage_status(1);\r
Send_json_Data_Cmd(data[0],num,0x49);\r
+ uapi_dev_runtime_set_train_storage_status(0);\r
break;\r
case 0x01://同步闹钟\r
EACH_DATA_LEN = DIS_DATA_LEN;\r
Send_json_Data_Cmd(data[0],num,0x01);\r
break;\r
case 0x4b://睡眠历史数据\r
+\r
+ if(uapi_dev_runtime_get_sleep_storage_status())\r
+ {\r
+ ble_reply_cmdarr(SYN_SLEEP_HISTORY_DATA_CMD,NULL,0);\r
+ return;\r
+ }\r
+\r
EACH_DATA_LEN = DIS_DATA_LEN;\r
num=(ble_nus_max_data_len-18);\r
if(num>482)num=482;\r
+ uapi_dev_runtime_set_sleep_storage_status(1);\r
Send_Sleep_Bin_Data(data[0],num);\r
+ uapi_dev_runtime_set_sleep_storage_status(0);\r
break;\r
case 0x21://文件目录\r
EACH_DATA_LEN = DIS_DATA_LEN;\r
void cywee_save_data(void)
{
+ if(uapi_dev_runtime_get_goal_storage_status())
+ {
+ return;
+ }
+ uapi_dev_runtime_set_goal_storage_status(1);
+
int step=history_step+stepcount;
CWM_OS_saveData(&step,sizeof(int),CYWEE_SAVE_DATA_STEP);
CWM_OS_OneHourAgo_saveData(&history_step_,sizeof(int),CYWEE_SAVE_DATA_STEP);
int fat=history_fat+new_fat;
CWM_OS_saveData(&fat,sizeof(int),CYWEE_SAVE_DATA_FAT);
CWM_OS_OneHourAgo_saveData(&history_fat_,sizeof(uint16_t),CYWEE_SAVE_DATA_FAT);
+
+ uapi_dev_runtime_set_goal_storage_status(0);
}
void cywee_restoreData(void)
case CYWEE_SAVE_DATA_STEP:
data= get_step_data()-history_step_;
+ if(data<0)
+ return 0;
memcpy_s(value,4,&data,4);
return 1;
case CYWEE_SAVE_DATA_CALORIES:
data =get_calories_data();
f_data=(float)data-history_calories_;
+ if(f_data<0)
+ return 0;
memcpy_s(value,4,&f_data,4);
return 1;
case CYWEE_SAVE_DATA_DISTANCE:
data= get_distance_data();
f_data=(float)data/1000.0-history_distances_;
+ if(f_data<0)
+ return 0;
memcpy_s(value,4,&f_data,4);
- break;
+ return 1;
+
case CYWEE_SAVE_DATA_FAT:
data= get_fat_time_data();
- uint32_t data_=data/60-history_fat_;
+ int32_t data_=data/60-history_fat_;
+ if(data_<0)
+ return 0;
memcpy_s(value,4,&data,4);
- break;
+ return 1;
default:
break;
}