#include "ActivityWeekView.h"
#include "graphic_service.h"
#include "DialModelSteps.h"
+#include "cywee_service.h"
using namespace std;
#ifdef __cplusplus
if (request->msgId == TOPIC_EVENT_NEXTDAY_UPDATE) {
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "STEP:TOPIC_EVENT_NEXTDAY_UPDATE");
+
+ //午夜清除运动数据
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_RESET_DAILY_DATA,NULL);
+
uint32_t refreshValue = OHOS::ActivityModel::GetInstance()->ZeroHourStepHandle();
RefreshStepControls(refreshValue, TOPIC_EVENT_NEXTDAY_UPDATE);
}
switch (cywee_Inactivity_Info->output_number)
{
case INACTIVITY_MODE_SEDENTARY_OUTPUT:
- NotificationManager::GetInstance()->ShowNotify(showSedentaryReminderNotify, (uint16_t)topic, true);
- // if(SedentaryReminderViewEventListener::GetInstance().IsReminderTime() == true)
- // {
- // NotificationManager::GetInstance()->ShowNotify(showSedentaryReminderNotify, (uint16_t)topic, true);
- // }
+ if(cywee_Inactivity_Info->sedentary_status == 3)
+ {
+ NotificationManager::GetInstance()->ShowNotify(showSedentaryReminderNotify, (uint16_t)topic, true);
+ // if(SedentaryReminderViewEventListener::GetInstance().IsReminderTime() == true)
+ // {
+ // NotificationManager::GetInstance()->ShowNotify(showSedentaryReminderNotify, (uint16_t)topic, true);
+ // }
+ }
break;
default:
break;
extern int CWM_OS_i2cTransfer(uint16_t slaveAddr, uint16_t reg, int regLength, uint8_t *writeData, int writeDataSize, uint8_t *readData, int readDataSize, int busIndex);
extern void* CWM_OS_malloc(int size);
extern void CWM_OS_free(void *ptr);
-extern void CWM_OS_saveData(uint8_t* data, uint32_t len);
-extern void CWM_OS_restoreData(uint8_t* data, uint32_t len);
+extern void CWM_OS_saveData(int* data, uint32_t len);
+extern void CWM_OS_restoreData(int* data, uint32_t len);
/********************CYWEE LIB*************************/
void cywee_activity_mode_change(int mode);
void cywee_hand_updown_switch(int cmd);
void cywee_ar_alert_switch(int cmd);
+void cywee_save_data(void);
extern uint8_t hrs_mode_state;
#pragma pack()
#define CYWEE_SERVICE_CMD_RESET_DAILY_DATA 0x2B
+#define CYWEE_SERVICE_CMD_SAVE_DATA 0x2C
errcode_t uapi_cywee_service_init(void);
void uapi_cywee_service_deinit(void);
} else if (strcmp(mode, "resume") == 0) {
PRINT("cywee resume\n");
do_cywee_service_check_msg(CYWEE_SERVICE_CMD_RESUME,NULL);
+ } else if (strcmp(mode, "reset") == 0) {
+ PRINT("cywee reset daily data\n");
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_RESET_DAILY_DATA,NULL);
}
return ERRCODE_SUCC;
cywee_reset_daily_data();
break;
+ case CYWEE_SERVICE_CMD_SAVE_DATA:
+ cywee_save_data();
+ break;
+
default:
PRINT("unkonw cmd \r\n");
break;
return 0;
}
#define CWM_DATA_PATH "/system/cyweedata"
-void CWM_OS_saveData(uint8_t* data, uint32_t len){
+void CWM_OS_saveData(int* data, uint32_t len){
FILE * fp = fopen(CWM_DATA_PATH,"wb");
if(fp==NULL)
}
fclose(fp);
}
-void CWM_OS_restoreData(uint8_t* data, uint32_t len){
+void CWM_OS_restoreData(int* data, uint32_t len){
FILE * fp = fopen(CWM_DATA_PATH,"rb");
if(fp==NULL)
{
uint8_t hrs_mode_state = 0;
+int history_step = 0;
+int stepcount = 0;
+
+void cywee_save_data(void)
+{
+ CWM_OS_saveData(&stepcount,sizeof(int));
+}
+
void cywee_ar_alert_switch(int cmd)
{
memset(&scl, 0, sizeof(scl));
{
memset(&scl, 0, sizeof(scl));
CWM_SettingControl(SCL_RESET_DAILY_INFO, &scl);
+ history_step = 0;
}
//INT[1] : 0 立即输出,但不中止睡眠。 1 立即输出且中止睡眠
(int)sensorEVT->fData[7],
(int)sensorEVT->fData[8],
(int)sensorEVT->fData[14]);
- int stepcount = (int)sensorEVT->fData[1];
+ stepcount = (int)sensorEVT->fData[1] + history_step;
memset(&c_activity_result_t,0,sizeof(cywee_activity_result_t));
c_activity_result_t.activity_mode = (int)sensorEVT->fData[0];
- c_activity_result_t.steps = (int)sensorEVT->fData[1];
+ c_activity_result_t.steps = stepcount;
c_activity_result_t.distance = (int)sensorEVT->fData[2];
c_activity_result_t.calories = (int)sensorEVT->fData[3];
c_activity_result_t.step_frequency = (int)sensorEVT->fData[5];
c_activity_result_t.pace = (int)sensorEVT->fData[7];
c_activity_result_t.hrs = hrs;
cywee_func(CYWEE_MSG_TYPE_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t));
-
CustomEventPublish(TOPIC_EVENT_STEPDATA_UPDATE,&stepcount,sizeof(int));
}
break;
}
#endif
+// int cm__hs1__init(void);
+// int cm__hs1__deinit(void);
int cywee_main_dml(void)
{
CWM_LibPostInit(CWM_AP_SensorListen);
//CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
-
- //get chip information
+#if 0
+ memset(&scl, 0, sizeof(scl));
+ scl.iData[0] = 1;
+ scl.iData[1] = 31010100;
+ CWM_SettingControl(SCL_CHIP_VENDOR_CONFIG, &scl);
+
+ //1.Init data
+ uint32_t irqMask = 0;
+ irqMask = osal_irq_lock();
+ cm__hs1__init();
+
+ //2.Init CWM lib
+ CWM_LibPostInit(CWM_AP_SensorListen);
+ //CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
+
+ //3.Deinit data
+ cm__hs1__deinit();
+ osal_irq_restore(irqMask);
+#endif
+ //get chip information
char chipInfo[64];
scl.iData[7] = 5; //轴向配置
#if 1
scl.iData[3] = 2;
- scl.iData[4] = 2; //1 anytime 2 fifo
- scl.iData[6] = 15; //先設定5
- scl.iData[8] = 13; // for st sensor(52Hz)
+ scl.iData[4] = 1; //1 anytime 2 fifo
+ scl.iData[6] = 25; //先設定5
+ scl.iData[8] = 26; // for st sensor(52Hz)
#else
scl.iData[3] = 2;
scl.iData[4] = 1; //1 anytime 2 fifo
// CWM_Sensor_Enable(IDX_ALGO_ANY_MOTIOIN);
//CWM_Sensor_Enable(IDX_ALGO_ABSOLUTE_STATIC);
//CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
+ CWM_OS_restoreData(&history_step,sizeof(int));
cywee_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL);
int16_t gsen_fifo_y[64]={0};\r
int16_t gsen_fifo_z[64]={0};\r
\r
-gsenson_t gsensordata[5];\r
+gsenson_t gsensordata[8];\r
\r
#ifdef SPO2_VECTOR\r
#include "spo2_vec.h"\r
PRINT("*count : %d \r\n",*count);\r
if(*count < 10)\r
{\r
- gsensor_get_n_data(5,gsensordata);\r
+ gsensor_get_n_data(8,gsensordata);\r
for(ii=0; ii<*count; ii++)\r
{\r
- // gsen_fifo_x_send[ii] = (gsensordata[ii*2].x + gsensordata[2*ii + 1].x)/2;\r
- // gsen_fifo_y_send[ii] = (gsensordata[ii*2].y + gsensordata[2*ii + 1].y)/2;\r
- // gsen_fifo_z_send[ii] = (gsensordata[ii*2].z + gsensordata[2*ii + 1].z)/2;\r
- gsen_fifo_x_send[ii] = gsensordata[ii/2].x * 2048;\r
- gsen_fifo_y_send[ii] = gsensordata[ii/2].y * 2048;\r
- gsen_fifo_z_send[ii] = gsensordata[ii/2].z * 2048;\r
-\r
+ if(ii == 8)\r
+ {\r
+ gsen_fifo_x_send[ii] = gsen_fifo_x_send[ii - 1];\r
+ gsen_fifo_y_send[ii] = gsen_fifo_y_send[ii - 1];\r
+ gsen_fifo_z_send[ii] = gsen_fifo_z_send[ii - 1];\r
+ }\r
+ else\r
+ {\r
+ gsen_fifo_x_send[ii] = gsensordata[ii].x * 2048;\r
+ gsen_fifo_y_send[ii] = gsensordata[ii].y * 2048;\r
+ gsen_fifo_z_send[ii] = gsensordata[ii].z * 2048;\r
+ }\r
//PRINT("hxdata:%d/%d %d %d %.3f %.3f %.3f %d\r\n" ,1+ii,*count,PPG_buf[ii],ir_buf[0],gsen_fifo_x_send[ii],gsen_fifo_y_send[ii],gsen_fifo_z_send[ii],ppg_s_data.green_cur);\r
PRINT("hxdata:%d/%d %d %d %d %d %d %d\r\n" ,1+ii,*count,PPG_buf[ii],ir_buf[0],gsen_fifo_x_send[ii],gsen_fifo_y_send[ii],gsen_fifo_z_send[ii],ppg_s_data.green_cur);\r
- \r
+\r
}\r
hrs_wear_status = hx3695_hrs_get_wear_status();\r
PRINT("hrs_wear_status: %d !!\r\n", hrs_wear_status);\r
PRINT("*count[%d] \r\n",*count);\r
if(*count < 10)\r
{\r
- gsensor_get_n_data(5,gsensordata);\r
+ gsensor_get_n_data(8,gsensordata);\r
for(ii=0; ii<*count; ii++)\r
{\r
\r
- // gsen_fifo_x_send[ii] = (gsensordata[ii*2].x + gsensordata[2*ii + 1].x)/2;\r
- // gsen_fifo_y_send[ii] = (gsensordata[ii*2].y + gsensordata[2*ii + 1].y)/2;\r
- // gsen_fifo_z_send[ii] = (gsensordata[ii*2].z + gsensordata[2*ii + 1].z)/2;\r
- gsen_fifo_x_send[ii] = gsensordata[ii/2].x * 2048;\r
- gsen_fifo_y_send[ii] = gsensordata[ii/2].y * 2048;\r
- gsen_fifo_z_send[ii] = gsensordata[ii/2].z * 2048;\r
+ if(ii == 8)\r
+ {\r
+ gsen_fifo_x_send[ii] = gsen_fifo_x_send[ii - 1];\r
+ gsen_fifo_y_send[ii] = gsen_fifo_y_send[ii - 1];\r
+ gsen_fifo_z_send[ii] = gsen_fifo_z_send[ii - 1];\r
+ }\r
+ else\r
+ {\r
+ gsen_fifo_x_send[ii] = gsensordata[ii].x * 2048;\r
+ gsen_fifo_y_send[ii] = gsensordata[ii].y * 2048;\r
+ gsen_fifo_z_send[ii] = gsensordata[ii].z * 2048;\r
+ }\r
\r
PRINT("hxdata:%d/%d %d %d %d %d %d %d\r\n",\r
1+ii,*count,red_buf[ii],ir_buf[ii],green_buf[ii],gsen_fifo_x_send[ii],gsen_fifo_y_send[ii],gsen_fifo_z_send[ii]);\r
}
void shutdown_reboot_prejobs_task(void)
{
+ //保存步数
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SAVE_DATA,NULL);
+
addressbookTowrite();
uapi_calendar_store_date();