int32_t ret;
common_notify_mail_t mail;
uint32_t msgsize = (uint32_t)sizeof(common_notify_mail_t);
-
+ int sendbuf[2] = {0};
/**开机初始化电量及充电状态 Start*/
if(get_charge_stat() == 1)
}else if (mail.comm.event == BATTERY_CMD_CHARGE_PLUG) {
// PRINT("[battery][service] charger_plug_event_ui_sendmsg_toUI plugged \n");
oncharging_status = 1;
- do_cywee_service_check_msg(CYWEE_SERVICE_CMD_ONCHARGING_CHANGE,&oncharging_status);
+ sendbuf[0] = oncharging_status;
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_ONCHARGING_CHANGE,sendbuf);
battery_check_chargement();
charger_plug_event_ui_sendmsg_toUI(1);
}else if (mail.comm.event == BATTERY_CMD_CHARGE_UNPLUG) {
// PRINT("[battery][service] charger_plug_event_ui_sendmsg_toUI unplugged \n");
oncharging_status = 0;
- do_cywee_service_check_msg(CYWEE_SERVICE_CMD_ONCHARGING_CHANGE,&oncharging_status);
+ sendbuf[0] = oncharging_status;
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_ONCHARGING_CHANGE,sendbuf);
disable_charge();
charger_plug_event_ui_sendmsg_toUI(0);
CYWEE_MSG_TYPE_INACTIVITY_EXTRA_INFO_UPDATE,
} cywee_msg_type_t;
-
-#define RAISE_HAND 1
-#define DROP_HAND 2
-
extern void get_gsonsen_xyz(gsenson_t *t);
void gsensor_get_n_data(uint8_t cnt,gsenson_t t[]);
void cywee_oncharging_update(int oncharging_status);
void cywee_wearstatus_update(int wearstatus);
void cywee_hrs_wearstatus_update(int hrs_data,int wearstatus);
-
+void cywee_set_user_info(int age,int gender,int weight,int height,int wearing_method);
extern uint8_t hrs_mode_state;
* @Author: penglei 1624952103@qq.com
* @Date: 2024-03-26 20:29:58
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-04-16 15:50:32
+ * @LastEditTime: 2024-04-18 11:43:11
* @FilePath: /FD230/code/sdk/drivers/peripheral/cywee/Inc/cywee_service.h
* @Description:
*
/**
* 测试指令 参数cmd 选项: ACC_SERVICE_CMD_START_CHECK,ACC_SERVICE_CMD_STOP_CHECK
*/
-void do_cywee_service_check_msg(int cmd,int data[]);
+void do_cywee_service_check_msg(int cmd, int data[2]);
#ifdef __cplusplus
g_bat_timer_is_running = false;
}
-void do_cywee_service_check_msg(int cmd, int data[])
+void do_cywee_service_check_msg(int cmd, int data[2])
{
int ret;
cywee_cmd_t mail = {0};
mail.cmd = cmd;
- mail.data[0] = data[0];
- mail.data[1] = data[1];
+ if(data != NULL)
+ {
+ mail.data[0] = data[0];
+ mail.data[1] = data[1];
+ }
+ else
+ {
+ mail.data[0] = 0;
+ mail.data[1] = 0;
+ }
ret = osal_msg_queue_write_copy(g_cywee_queue, (void *)&mail, sizeof(cywee_cmd_t), 0);
if (ret != OSAL_SUCCESS)
{
static uint8_t mail = 0;
-void watch_hand_updown(int fdata)
-{
- #if defined(SUPPORT_POWER_MANAGER)
- const power_display_svr_api_t *display_api = power_display_svr_get_api();
- #endif
- if (fdata == 2)
- {
- #if defined(SUPPORT_POWER_MANAGER)
- display_api->set_screen_set_keepon_timeout(0);
- CWM_OS_dbgPrintf("[cwyee] turn_off_screen");
- #endif
- }else if (fdata == 1)
- {
- #if defined(SUPPORT_POWER_MANAGER)
- if (display_api->get_screen_state() != SCREEN_ON) {
- CWM_OS_dbgPrintf("[cwyee] turn_on_screen");
- display_api->turn_on_screen();
- }
- display_api->set_screen_set_keepon_timeout(5000);
- #endif
- }
-}
-
void get_sleep_data(void)
{
memset(&scl, 0, sizeof(scl));
}
-void set_user_info(int age,int gender,double weight,int height,int wearing_method)
+void cywee_set_user_info(int age,int gender,int weight,int height,int wearing_method)
{
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
scl.iData[1] = age;
scl.iData[2] = gender;
- scl.iData[3] = (int)weight;
+ scl.iData[3] = weight;
scl.iData[4] = height;
scl.iData[5] = wearing_method;
CWM_SettingControl(SCL_USER_INFO, &scl);
//久坐和有效站立
case INACTIVITY_MODE_SEDENTARY:
CWM_OS_dbgPrintf("INACTIVITY_MODE_SEDENTARY\r\n");
- //training_mode_init();
- //配置久坐相关参数
- memset(&scl, 0, sizeof(scl));
- scl.iData[0] = 1;
- scl.iData[2] = 1;
- scl.iData[3] = 1;
- CWM_SettingControl(SCL_SEDENTARY, &scl);
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
scl.iData[1] = 1;
break;
case IDX_ALGO_SEDENTARY:
CWM_OS_dbgPrintf("IDX_ALGO_SEDENTARY\n");
-
break;
case IDX_ALGO_WATCH_HANDUP:
CWM_OS_dbgPrintf("HANDUP_DOWN MSG [%d]\n",(int)sensorEVT->fData[1]);
- watch_hand_updown((int)sensorEVT->fData[1]);
-
+ uapi_take_to_wake((int)sensorEVT->fData[1]);
break;
case IDX_ALGO_SLEEP:
CWM_OS_dbgPrintf("IDX_ALGO_SLEEP\n");
CWM_LibPostInit(CWM_AP_SensorListen);
//CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
-
+
//get chip information
char chipInfo[64];
scl.iData[0] = 1;
CWM_SettingControl(SCL_ACTIVITY_CONFIG, &scl);
- memset(&scl, 0, sizeof(scl));
- scl.iData[0] = 1;
- CWM_SettingControl(SCL_PEDO_CONFIG, &scl);
-
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
CWM_SettingControl(SCL_SLEEP_CONFIG, &scl);
- /*
- SCL_REQ_SLEEPING_DATA
- int[0] = 1
- int[1] = terminate_sleep
- (0: 立刻輸出狀態,但不中止此段睡眠偵測,
- 1: 立刻輸出狀態,並中止此段睡眠偵測)
- */
+
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
- scl.iData[1] = 0;
- CWM_SettingControl(SCL_REQ_SLEEPING_DATA, &scl);
-
- /*
- SCL_INACTIVITY_CONFIG
- int[0] = 1
- int[1] = 感測器雜訊度等級 (default: 低雜訊)
- (0: 低雜訊, 1: 高雜訊)
- */
+ scl.iData[2] = 1;
+ CWM_SettingControl(SCL_SEDENTARY, &scl);
+
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
CWM_SettingControl(SCL_INACTIVITY_CONFIG, &scl);
- memset(&scl, 0, sizeof(scl));
- scl.iData[0] = 1;
- scl.iData[2] = 1;
- scl.iData[3] = 1;
- scl.iData[4] = 3;
- scl.iData[5] = 1;
- CWM_SettingControl(SCL_SEDENTARY, &scl);
+ // memset(&scl, 0, sizeof(scl));
+ // scl.iData[0] = 1;
+ // scl.iData[3] = 9;
+ // scl.iData[4] = 5;
+ // scl.iData[7] = -1;
+ // CWM_SettingControl(SCL_LOG, &scl);
// CWM_SettingControl(SCL_LOG, &scl);
-
-
- //呼叫任一個CWM_Sensor_Enable 前呼叫此指令 设置手动或自动模式
+ //呼叫任一個CWM_Sensor_Enable 前呼叫此指令 设置手动或自动模式
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
scl.iData[1] = 1;
// //CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
CWM_Sensor_Enable(IDX_ALGO_ACTIVITY_OUTPUT);
-
+ CWM_Sensor_Enable(IDX_ALGO_INACTIVITY_OUTPUT);
+ CWM_Sensor_Enable(IDX_ALGO_SEDENTARY);
+ CWM_Sensor_Enable(IDX_ALGO_SLEEP);
CWM_Sensor_Enable(IDX_ACCEL);
//CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
// CWM_Sensor_Enable(IDX_GYRO);
//uint8_t alg_ram[10] = {0};\r
ppg_sensor_data_t ppg_s_data;\r
\r
-int hrs_data[2] = {0};\r
+int cywee_data[2] = {0};\r
\r
int wear_mode_status = 0;\r
\r
\r
if(hrs_mode_state)\r
{\r
- hrs_data[0] = hrsresult.lastesthrs;\r
- hrs_data[1] = hrs_wear_status;\r
+ cywee_data[0] = hrsresult.lastesthrs;\r
+ cywee_data[1] = hrs_wear_status;\r
\r
- do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_WEARSTATUS_CHANGE,hrs_data);\r
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_WEARSTATUS_CHANGE,cywee_data);\r
}\r
\r
if(hrsresult.lastesthrs > 0)\r
DEBUG_PRINTF("\r\n send1 jlink cnt=%d\r\n",*count); \r
\r
/*屏蔽*/\r
- // for(ii=0; ii<*count; ii++)\r
- // {\r
- // gsen_fifo_x_send[ii] = gsen_fifo_x[32-*count+ii];\r
- // gsen_fifo_y_send[ii] = gsen_fifo_y[32-*count+ii];\r
- // gsen_fifo_z_send[ii] = gsen_fifo_z[32-*count+ii];\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[ii],gsen_fifo_y[ii],gsen_fifo_z[ii]);\r
- // //printf("FFF==>spo2 red_buf : %d, %d, %d, %d \n", 1+ii, *count, red_buf[ii], ir_buf[0]);\r
- \r
+ PRINT("*count[%d] \r\n",*count);\r
+ if(*count < 10)\r
+ {\r
+ for(ii=0; ii<*count; ii++)\r
+ {\r
+ gsen_fifo_x_send[ii] = gsen_fifo_x[32-*count+ii];\r
+ gsen_fifo_y_send[ii] = gsen_fifo_y[32-*count+ii];\r
+ gsen_fifo_z_send[ii] = gsen_fifo_z[32-*count+ii];\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[ii],gsen_fifo_y[ii],gsen_fifo_z[ii]);\r
+ //printf("FFF==>spo2 red_buf : %d, %d, %d, %d \n", 1+ii, *count, red_buf[ii], ir_buf[0]);\r
+ \r
\r
- // }\r
+ }\r
\r
-// ft_ppg_iir = spo2_s_dat.red_data[0];\r
-// hx3695_factory_test_process(NULL, APP_FACTORY_TEST_SPO2_START, &ft_ppg_iir);\r
+ // ft_ppg_iir = spo2_s_dat.red_data[0];\r
+ // hx3695_factory_test_process(NULL, APP_FACTORY_TEST_SPO2_START, &ft_ppg_iir);\r
\r
- ft_test_result_t result = {0};\r
- result.gr_data_final = spo2_s_dat.green_data[0];\r
- result.red_data_final = spo2_s_dat.red_data[0];\r
- result.ir_data_final = spo2_s_dat.ir_data1[0];\r
- //hx3695_factory_test_process(NULL, APP_FACTORY_TEST_SPO2_START, &result);\r
+ ft_test_result_t result = {0};\r
+ result.gr_data_final = spo2_s_dat.green_data[0];\r
+ result.red_data_final = spo2_s_dat.red_data[0];\r
+ result.ir_data_final = spo2_s_dat.ir_data1[0];\r
+ //hx3695_factory_test_process(NULL, APP_FACTORY_TEST_SPO2_START, &result);\r
\r
\r
- PRINT("hx3695 current value: %d %d %d %d %d %d\r\n", cal.R_LED, cal.IR_LED1, cal.G_LED, cal.R_LEDDAC, cal.IR_LEDDAC1, cal.G_LEDDAC);\r
- spo2_wear_status = hx3695_spo2_get_wear_status();\r
- PRINT("spo2_wear_status : %d\r\n",spo2_wear_status);\r
- if(spo2_wear_status == MSG_SPO2_WEAR)\r
- {\r
- tyhx_spo2_alg_send_data(red_buf, ir_buf, green_buf, cal.R_LEDDAC, cal.IR_LEDDAC1, cal.G_LEDDAC, \r
- gsen_fifo_x_send, gsen_fifo_y_send, gsen_fifo_z_send, *count);\r
+ PRINT("hx3695 current value: %d %d %d %d %d %d\r\n", cal.R_LED, cal.IR_LED1, cal.G_LED, cal.R_LEDDAC, cal.IR_LEDDAC1, cal.G_LEDDAC);\r
+ spo2_wear_status = hx3695_spo2_get_wear_status();\r
+ PRINT("spo2_wear_status : %d\r\n",spo2_wear_status);\r
+ if(spo2_wear_status == MSG_SPO2_WEAR)\r
+ {\r
+ tyhx_spo2_alg_send_data(red_buf, ir_buf, green_buf, cal.R_LEDDAC, cal.IR_LEDDAC1, cal.G_LEDDAC, \r
+ gsen_fifo_x_send, gsen_fifo_y_send, gsen_fifo_z_send, *count);\r
+ }\r
}\r
+ \r
#endif\r
\r
spo2_alg_results = tyhx_spo2_alg_get_results();\r
if(wear_mode_status != hx3695_wear_status)\r
{\r
wear_mode_status = hx3695_wear_status;\r
- do_cywee_service_check_msg(CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE,&wear_mode_status);\r
+ cywee_data[0] = wear_mode_status;\r
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE,&cywee_data);\r
}\r
\r
extern uint8_t notouch_cnt;\r
#include "vibrator.h"
-
-void vibrator_switch(uint8_t cmd)
-{
- //g_VibratorFunc_Swtich(cmd);
-}
-
void vibrator_cyclicity(uint16_t duty , uint16_t cycle_time_ms,uint16_t duration_time_ms)
{
g_VibratorFunc(duty,cycle_time_ms,duration_time_ms);
}
-void VibratorFunc_PowerOn(void)
+void uapi_set_vibrator_level(int level)
{
- //g_VibratorFunc_PowerOn();
+ uint16_t duty =20;
+ uint16_t cycle_time_ms = 200;
+ uint16_t duration_time_ms = 0;
+ switch(level)
+ {
+ case 1:
+ duration_time_ms = 200;
+ break;
+ case 2:
+ duration_time_ms = 500;
+ break;
+ case 3:
+ duration_time_ms = 1000;
+ break;
+ default:
+ break;
+ }
+ g_VibratorFunc(duty,cycle_time_ms,duration_time_ms);
}
-void VibratorFunc_PowerOff(void)
+void uapi_take_to_wake(int cmd)
{
- //g_VibratorFunc_PowerOff();
+ #if defined(SUPPORT_POWER_MANAGER)
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();
+ #endif
+ if (cmd == 2)
+ {
+ #if defined(SUPPORT_POWER_MANAGER)
+ display_api->set_screen_set_keepon_timeout(0);
+ PRINT("[cwyee] turn_off_screen");
+ #endif
+ }else if (cmd == 1)
+ {
+ #if defined(SUPPORT_POWER_MANAGER)
+ if (display_api->get_screen_state() != SCREEN_ON) {
+ PRINT("[cwyee] turn_on_screen");
+ display_api->turn_on_screen();
+ }
+ display_api->set_screen_set_keepon_timeout(5000);
+ #endif
+ }
}
* @}
*/
+//抬腕亮屏
+void uapi_take_to_wake(int cmd);
+
//开关马达
-void vibrator_switch(uint8_t cmd);
+void uapi_set_vibrator_level(int level);
void vibrator_cyclicity(uint16_t duty , uint16_t cycle_time_ms,uint16_t duration_time_ms);
//获取lcd id
return ERRCODE_SUCC;
}
-static uint32_t custom_vibrator_on(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
-{
-
- UNUSED(strCommonCmd);
-
- //VibratorFunc_PowerOn();
-
- return ERRCODE_SUCC;
-}
-
-static uint32_t custom_vibrator_off(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
-{
-
- UNUSED(strCommonCmd);
-
- //VibratorFunc_PowerOff();
-
- return ERRCODE_SUCC;
-}
-
#include "cywee_hal.h"
#include "hx3695_hrs_agc.h"
static uint32_t custom_gsensor_getdata(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
{ (char *)"AT^CUSTOM_SN_REQ", custom_utils_getsn, (char *)" " },
{ (char *)"AT^DOWNLOADOTA", custom_start_ota_download, (char *)" " },
{ (char *)"AT^STARTOTA", custom_start_ota, (char *)" " },
-
- { (char *)"AT^VIBRATORON", custom_vibrator_on, (char *)" " },
-
- { (char *)"AT^VIBRATOROFF", custom_vibrator_off, (char *)" " },
-
{ (char *)"AT^LCDID", custom_lcd_getid, (char *)" " },
{ (char *)"AT^TOUCHID", custom_touch_getid, (char *)" " },