#include "string.h"
#include "bleService.h"
#include "bletest.h"
+#include <cywee_hal.h>
#define CWM_HISTORY_DATA_PATH "/user/userdata/step_"
-char * ble_step_history(uint8_t day,uint16_t *len)
-{
- char path_[64]={0};
- char timeday[12] = {0};
- uapi_get_YYMMDD_Time(timeday, '_');
- sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_PATH,timeday);
-
- FILE * fp = fopen(path_,"rb+");
- if(fp==NULL)
- {
- printf("fopen fail\r\n");
- return NULL;
- }
- uint32_t size;
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- size = ftell(fp); // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- }
- printf("size %d \r\n",size);
+#define CWM_HISTORY_DATA_CALORIES_PATH "/user/userdata/calories_"
- char * buf=(char *)malloc(size);
- if(buf==NULL)
- {
- printf("malloc fail\r\n");
- return buf;
- }
- uint32_t ret= fread(buf,1,size,fp);
-
- printf("fread %d \r\n",ret);
- for(int i=0;i<ret;i++)
- {
- printf(" %X",buf[i]);
- }
- *len=size;
- return buf;
-}
+#define CWM_HISTORY_DATA_DISTANCE_PATH "/user/userdata/distance_"
#define CWM_HISTORY_STAND_DATA_PATH "/user/userdata/stand_"
-char * ble_stand_history(uint8_t day,uint16_t *len)
+char * ble_sywee_history(uint8_t day,uint16_t *len ,uint8_t type)
{
char path_[64]={0};
char timeday[12] = {0};
uapi_get_YYMMDD_Time(timeday, '_');
- sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_STAND_DATA_PATH,timeday);
-
+
+ switch (type)
+ {
+ case 0x43: //同步步数历史数据
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_PATH,timeday);
+ break;
+ case 0x44://同步燃脂时间数据
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_PATH,timeday);
+ break;
+ case 0x45://同步站立历史数据
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_STAND_DATA_PATH,timeday);
+ break;
+ case 0x46://同步卡路里历史数据
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_CALORIES_PATH,timeday);
+ break;
+ case 0x47://同步距离历史数据
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_DISTANCE_PATH,timeday);
+ break;
+ default:
+ break;
+ }
FILE * fp = fopen(path_,"rb+");
if(fp==NULL)
{
void ble_set_sleep_remind(msg_get_sleep_param_info_t data);
-char * ble_step_history(uint8_t day,uint16_t *len);
+char * ble_sywee_history(uint8_t day,uint16_t *len,uint8_t type);
-char * ble_stand_history(uint8_t day,uint16_t *len);
void Set_DmpChangeMode(int state);
uint8_t timeBit = 4;//默认是4个字节的时间戳\r
uint8_t dataBit = 1;//默认是1个字节的数据\r
uint32_t data_len = 0;\r
- switch (id)\r
- {\r
- case 0x43: //同步步数历史数据\r
- data=ble_step_history(0,&data_len);\r
- break;\r
- case 0x44://同步燃脂时间数据\r
- data=ble_stand_history(0,&data_len);\r
- break;\r
- case 0x45://同步站立历史数据\r
- data=ble_stand_history(0,&data_len);\r
- break;\r
- case 0x46://同步卡路里历史数据\r
- data=NULL; \r
- break;\r
- case 0x47://同步距离历史数据\r
- data=NULL; \r
- break;\r
- case 0x4b://睡眠历史数据\r
- data=NULL;\r
- break;\r
- }\r
+ \r
+ data=ble_sywee_history(0,&data_len,id);\r
\r
if(data==NULL)\r
{\r
\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_JSON_file_buf_send_bin_Data(num,0x46,"heart_data_list");\r
+ num=(ble_nus_max_data_len-18);\r
+ if(num>482)\r
+ {\r
+ num=482;\r
+ }\r
+ Read_BIN_file_buf_send_bin_Data(num,0x46);\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_JSON_file_buf_send_bin_Data(num,0x47,"heart_data_list");\r
+ num=(ble_nus_max_data_len-18);\r
+ if(num>482)\r
+ {\r
+ num=482;\r
+ }\r
+ Read_BIN_file_buf_send_bin_Data(num,0x47);\r
break;\r
case 0x49://同步基础训练历史数据\r
EACH_DATA_LEN = DIS_DATA_LEN;\r
unused(req);
// The alarm notification is not displayed if the incoming call notification is already being processed
// cywee_save_data();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时步数");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时步数");
step_history_save();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时站立数据");
stand_history_save();
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时卡路里数据");
+ calories_history_save();
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时距离数据");
+ distances_history_save();
+
+
+
}
void MsgCenterNotifyActivityProc(const Topic topic, Request* req)
{
unused(topic);
- unused(req);
+ cywee_activity_result_t* c_activity_result_t = (cywee_activity_result_t *) malloc(req->len);
+ if(c_activity_result_t==NULL)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Memory allocation failure");
+ return;
+ }
+
+ int rets = memcpy_s(c_activity_result_t, req->len, (cywee_activity_result_t*)req->data, req->len);
+ if (rets != EOK)
+ {
+ free(c_activity_result_t);
+ c_activity_result_t = NULL;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "memcpy_s c_activity_result_t failed, ret = %d", rets);
+ return;
+ }
+ if(c_activity_result_t->calories!=0)
+ set_calories_data(c_activity_result_t->calories);
+
+
+ if(c_activity_result_t->distance!=0)
+ set_distance_data(c_activity_result_t->distance);
+
}
void MsgCenterNotifyInactivityProc(const Topic topic, Request *req)
{
#include "components/ui_slider.h"
// #include "UiConfig.h"
#include "bleEvent.h"
-
+#include "power_display_service.h"
namespace OHOS
{
static UIImageView *imageCharge = nullptr;
}
transmitting_timer = nullptr;
}
+
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();
+ if (display_api->get_screen_state() != SCREEN_ON)
+ {
+ display_api->turn_on_screen();
+ }
+ display_api->set_auto_timeout_function(true);
+
RootView::GetInstance()->Remove(UIViewGroup_transmitting);
UIViewGroup_transmitting->SetOnClickListener(button1Click);
UIViewGroup_transmitting->SetTouchable(true);
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();
+ if (display_api->get_screen_state() != SCREEN_ON)
+ {
+ display_api->turn_on_screen();
+ }
+ display_api->set_auto_timeout_function(false);
+
#include "stdint.h"
#include "errcode.h"
+typedef enum {
+ CYWEE_SAVE_DATA_STEP,
+ CYWEE_SAVE_DATA_DISTANCE,
+ CYWEE_SAVE_DATA_CALORIES,
+} CYWEE_SAVE_DATA_TYPE;
extern uint64_t CWM_OS_GetTimeNs(void);
extern void* CWM_OS_malloc(int size);
extern void CWM_OS_free(void *ptr);
extern void CWM_OS_saveData(int* data, uint32_t len);
-extern void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len);
+extern void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t type);
extern void CWM_OS_saveData_STAND_history(uint8_t *falg,uint32_t len);
extern void CWM_OS_restoreData(int* data, uint32_t len);
void cywee_time_sync(void);
void cywee_hand_updown_switch(int cmd);
void cywee_ar_alert_switch(int cmd);
+
void step_history_save(void);
void stand_history_save(void);
+void calories_history_save(void);
+void distances_history_save(void);
+
void set_stand_falg(void);
+void set_calories_data(uint32_t data);
+void set_distance_data(uint32_t data);
+
void cywee_get_chipinfo(char *databuf,uint8_t len);
void cywee_get_acc_switch(uint8_t cmd);
void cywee_set_sedentary_interval(int time);
+
/********************CYWEE DML*********************/
#define CWM_HISTORY_DATA_PATH "/user/userdata/step_"
-void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len){
+#define CWM_HISTORY_DATA_CALORIES_PATH "/user/userdata/calories_"
+
+#define CWM_HISTORY_DATA_DISTANCE_PATH "/user/userdata/distance_"
+
+typedef enum {
+ CYWEE_SAVE_DATA_STEP,
+ CYWEE_SAVE_DATA_DISTANCE,
+ CYWEE_SAVE_DATA_CALORIES,
+} CYWEE_SAVE_DATA_TYPE;
+
+
+void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t type){
char path_[64]={0};
char timeday[12] = {0};
uapi_get_YYMMDD_Time(timeday, '_');
- sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_PATH,timeday);
+ switch (type)
+ {
+ case CYWEE_SAVE_DATA_CALORIES:
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_CALORIES_PATH,timeday);
+ break;
+ case CYWEE_SAVE_DATA_STEP:
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_PATH,timeday);
+ break;
+ case CYWEE_SAVE_DATA_DISTANCE:
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_DISTANCE_PATH,timeday);
+ break;
+ default:
+ break;
+ }
+
CWM_OS_dbgPrintf(" save path %s \n",path_);
+ int data= *new_data-*history;//新数据减去旧数据,作为这一个小时的步数值
+ if(data<=0)
+ {
+ data=0;
+ *history=0;
+ CWM_OS_dbgPrintf("异常 清除步数数据\n");
+ return;
+
+ }
+
FILE * fp = fopen(path_,"ab+");
if(fp==NULL)
{
CWM_OS_dbgPrintf("fwrite failed %d\n",ret);
}
-
-
- //新数据减去旧数据,作为这一个小时的步数值
-
- int data= *new_data-*history;
- if(data<0)
- {
- data=0;
- *history=0;
- CWM_OS_dbgPrintf("异常 清除步数数据\n");
- }
ret =fwrite(&data,1,len,fp);
if(ret==0)
}
}
-
- //CWM_OS_dbgPrintf("fwrite data %d\n",data);
+ // calories 数据存储
+
-
uint8_t stand_falg=0;//站立falg,如果发生站立,一个小时内会被置1;
+int new_calories=0; //存卡路里数据
+
+int history_calories=0; //一小时前卡路里数据
+
+int new_distance=0; //存距离数据
+
+int history_distances=0; //一小时前距离数据
+
+
static char chipInfo[64] = {0};
static int get_acc_swtich = 0;
static int sedentary_interval_count = 0;
+
int cm__hs1__init(void);
int cm__hs1__deinit(void);
void step_history_save(void)
{
- CWM_OS_saveData_history(&stepcount,&history_step_,sizeof(int));
+ CWM_OS_saveData_history(&stepcount,&history_step_,sizeof(int),CYWEE_SAVE_DATA_STEP);
+}
+
+void set_calories_data(uint32_t data)
+{
+ new_calories=data;
+}
+
+void set_distance_data(uint32_t data)
+{
+ new_distance=data;
}
void set_stand_falg(void)
CWM_OS_saveData_STAND_history(&stand_falg,sizeof(int));
}
+void calories_history_save(void)
+{
+ CWM_OS_saveData_history(&new_calories,&history_calories,sizeof(int),CYWEE_SAVE_DATA_CALORIES);
+}
+
+void distances_history_save(void)
+{
+ CWM_OS_saveData_history(&new_calories,&history_calories,sizeof(int),CYWEE_SAVE_DATA_DISTANCE);
+}
+
void cywee_ar_alert_switch(int cmd)
{