+/*\r
+ * @Author: penglei 1624952103@qq.com\r
+ * @Date: 2024-06-17 14:31:08\r
+ * @LastEditors: penglei 1624952103@qq.com\r
+ * @LastEditTime: 2024-06-17 17:51:27\r
+ * @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
+ * @Description: \r
+ * \r
+ * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. \r
+ */\r
/*\r
* Copyright (c) @CompanyNameMagicTag 2022. All rights reserved.\r
* Description: BT HID Service Server Module.\r
\r
static osTimerId_t g_ble_acc_timer = NULL;\r
\r
-static osTimerId_t g_ble_hrs_timer = NULL;\r
-static osTimerId_t g_ble_spo2_timer = NULL;\r
-\r
static osTimerId_t g_ble_microhone_timer = NULL;\r
static osTimerId_t g_ble_spk_timer = NULL;\r
\r
6);\r
}\r
\r
-void ble_hrs_check_timer_callback(void)\r
-{\r
- uint8_t databuf[4] = {0};\r
- int32_t ppg_buf;\r
- uint8_t i;\r
- if(ble_hrs_flag != 1)\r
- return;\r
- else\r
- {\r
- osTimerStop(g_ble_hrs_timer);\r
- osTimerDelete(g_ble_hrs_timer);\r
- ble_hrs_flag = 0;\r
- send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
-\r
- if(ble_hrs_data > 10000)\r
- {\r
- ppg_buf = ble_hrs_data;\r
-\r
- databuf[0] = (uint8_t)((ppg_buf & 0xFF000000) >> 24);\r
- databuf[1] = (uint8_t)((ppg_buf & 0x00FF0000) >> 16);\r
- databuf[2] = (uint8_t)((ppg_buf & 0x0000FF00) >> 8);\r
- databuf[3] = (uint8_t)((ppg_buf & 0x000000FF) >> 0);\r
-\r
- PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
-\r
- factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
- BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
- 0x07,\r
- databuf,\r
- 4);\r
- }\r
- }\r
-\r
-}\r
-\r
-void ble_spo2_check_timer_callback(void)\r
-{\r
- uint8_t databuf[4] = {0};\r
- int32_t red_buf;\r
-\r
- if(ble_spo2_flag != 1)\r
- return;\r
- else\r
- {\r
- osTimerStop(g_ble_spo2_timer);\r
- osTimerDelete(g_ble_spo2_timer);\r
- ble_spo2_flag = 0;\r
- send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_SPO2_TEST);\r
-\r
- if(ble_spo2_data > 10000)\r
- {\r
- red_buf = ble_spo2_data;\r
-\r
- databuf[0] = (uint8_t)((red_buf & 0xFF000000) >> 24);\r
- databuf[1] = (uint8_t)((red_buf & 0x00FF0000) >> 16);\r
- databuf[2] = (uint8_t)((red_buf & 0x0000FF00) >> 8);\r
- databuf[3] = (uint8_t)((red_buf & 0x000000FF) >> 0);\r
-\r
- PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
-\r
- factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
- BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
- 0x08,\r
- databuf,\r
- 4);\r
- }\r
- }\r
-\r
-\r
-}\r
-\r
void ble_microhone_check_timer_callback(void)\r
{\r
PRINT("ble_microhone_check_timer_callback \r\n");\r
\r
void ble_spk_check_timer_callback(void)\r
{\r
- PRINT("ble_spk_check_timer_callback \r\n");\r
uint8_t send_data= 0;\r
\r
uapi_check_spk(0);\r
0x02,\r
&send_data,\r
1);\r
- } else if(testitem == 0x07)\r
+ } else if(testitem == 0x03)\r
{\r
//打开心率检测\r
- g_ble_hrs_timer = osTimerNew((osTimerFunc_t)ble_hrs_check_timer_callback, osTimerPeriodic, NULL, NULL);\r
- osTimerStart(g_ble_hrs_timer,400);\r
- send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_PPG_TEST);\r
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST);\r
+ FT_RESULTS_t ft_result = hx3695_factroy_test(SINGLE_CHECK_TEST);\r
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
+ uint8_t databuf[4] = {0};\r
\r
- } else if(testitem == 0x08)\r
+ databuf[0] = (uint8_t)((ft_result.gr_data_final & 0xFF000000) >> 24);\r
+ databuf[1] = (uint8_t)((ft_result.gr_data_final & 0x00FF0000) >> 16);\r
+ databuf[2] = (uint8_t)((ft_result.gr_data_final & 0x0000FF00) >> 8);\r
+ databuf[3] = (uint8_t)((ft_result.gr_data_final & 0x000000FF) >> 0);\r
+\r
+ PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
+\r
+ factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+ BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
+ 0x03,\r
+ databuf,\r
+ 4);\r
+\r
+ } else if(testitem == 0x04)\r
{\r
//打开血氧检测\r
- g_ble_spo2_timer = osTimerNew((osTimerFunc_t)ble_spo2_check_timer_callback, osTimerPeriodic, NULL, NULL);\r
- osTimerStart(g_ble_spo2_timer,400);\r
- send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_SPO2_TEST);\r
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST);\r
+ FT_RESULTS_t ft_result = hx3695_factroy_test(SINGLE_CHECK_TEST);\r
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
+ uint8_t databuf[4] = {0};\r
+\r
+ databuf[0] = (uint8_t)((ft_result.red_data_final & 0xFF000000) >> 24);\r
+ databuf[1] = (uint8_t)((ft_result.red_data_final & 0x00FF0000) >> 16);\r
+ databuf[2] = (uint8_t)((ft_result.red_data_final & 0x0000FF00) >> 8);\r
+ databuf[3] = (uint8_t)((ft_result.red_data_final & 0x000000FF) >> 0);\r
+\r
+ PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
+\r
+ factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+ BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
+ 0x04,\r
+ databuf,\r
+ 4);\r
\r
} else if(testitem == 0x05)\r
{\r
void cywee_set_user_info(int user_info[5]);
void cywee_get_sleep_data(void);
void cywee_reset_daily_data(void);
-void cywee_inactivity_mode_change(int mode);
+void cywee_inactivity_mode_change(int mode,int enable);
void cywee_activity_mode_change(int mode);
void cywee_time_sync(void);
void cywee_hand_updown_switch(int cmd);
void cywee_get_chipinfo(char *databuf,uint8_t len);
void cywee_get_acc_switch(uint8_t cmd);
void cywee_set_sedentary_interval(int time);
+
extern uint8_t hrs_mode_state;
#pragma pack()
break;
case CYWEE_SERVICE_CMD_SEDENTARY_MODE:
- cywee_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY);
+ cywee_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY,mail.data[0]);
break;
case CYWEE_SERVICE_CMD_NAP_MODE:
- cywee_inactivity_mode_change(INACTIVITY_MODE_NAP);
+ cywee_inactivity_mode_change(INACTIVITY_MODE_NAP,mail.data[0]);
break;
case CYWEE_SERVICE_CMD_SLEEPING_MODE:
- cywee_inactivity_mode_change(INACTIVITY_MODE_SLEEPING);
+ cywee_inactivity_mode_change(INACTIVITY_MODE_SLEEPING,mail.data[0]);
break;
case CYWEE_SERVICE_CMD_OPEN_HAND_UPDOWN:
CWM_SettingControl(SCL_ACTIVITY_PAUSE, &scl);
}
-void cywee_inactivity_mode_change(int mode)
+void cywee_inactivity_mode_change(int mode,int enable)
{
cywee_time_sync();
+
+ if(enable == 0)
+ CWM_Sensor_Disable(IDX_ALGO_INACTIVITY_OUTPUT);
+ else
+ CWM_Sensor_Enable(IDX_ALGO_INACTIVITY_OUTPUT);
+
switch (mode)
{
//无作用
// //CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
CWM_Sensor_Enable(IDX_ALGO_WATCH_HANDUP);
CWM_Sensor_Enable(IDX_ALGO_ACTIVITY_OUTPUT);
- CWM_Sensor_Enable(IDX_ALGO_INACTIVITY_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);
{ \r
for(i=0;i<4;i++)\r
{\r
+ PRINT("saveData[%d] : %f \r\n",i,saveData[i]);\r
mag_hmm[i] = saveData[i]; \r
}\r
}\r
\r
int SavePara_infile(float *p,uint32_t len)\r
{ \r
+ for(int i = 0; i < len ; i++)\r
+ PRINT("p[%d] : %f \r\n",i,p[i]);\r
FILE * fp = fopen(MMC_DATA_PATH,"wb");\r
int ret = 0;\r
if(fp==NULL)\r
}\r
#endif\r
\r
-#endif //CHIP_HX3695\r
+#endif //CHIP_HX3695
\ No newline at end of file
* @Author: penglei 1624952103@qq.com
* @Date: 2024-03-13 15:08:38
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-06-13 10:16:15
+ * @LastEditTime: 2024-06-17 17:43:19
* @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c
* @Description:
*
md = FT_LED_OFF_MODE;
} else if (strcmp(mode, "wear") == 0) {
md = WEAR_MODE;
+ } else if (strcmp(mode, "single") == 0) {
+ md = FT_SINGLE_CHECK_MODE;
}
} else {
// ppg_service_running_stat = false;
- if(md == HRS_MODE|| md == FT_LEAK_LIGHT_MODE || md == FT_GRAY_CARD_MODE || md == WEAR_MODE)
+ if(md == HRS_MODE|| md == FT_LEAK_LIGHT_MODE || md == FT_GRAY_CARD_MODE || md == WEAR_MODE || md == FT_SINGLE_CHECK_MODE)
{
#ifdef HRS_ALG_LIB
hx3695_hrs_disable();
}else if (mail == PPG_SERVICE_CMD_TYPE_DO_LED_OFF_MODE_TEST){
cmd = "ledoff";
enable = 0;
+ }else if (mail == PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST){
+ cmd = "single";
+ enable = 1;
}else if (mail == PPG_SERVICE_CMD_TYPE_STOP_WEAR_MODE_TEST){
if (keep_in_wear_det_mod == 0) continue;
cmd = "wear";
* @Author: penglei 1624952103@qq.com
* @Date: 2024-03-27 09:07:00
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-06-13 09:42:57
+ * @LastEditTime: 2024-06-17 17:46:26
* @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/service/ppg_service.h
* @Description:
*
#define PPG_SERVICE_CMD_TYPE_DO_WEAR_MODE_TEST 0x20
#define PPG_SERVICE_CMD_TYPE_STOP_WEAR_MODE_TEST 0x21
#define PPG_SERVICE_CMD_TYPE_DO_LED_OFF_MODE_TEST 0x22
+#define PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST 0x23
errcode_t uapi_ppg_service_init(void);
void uapi_ppg_service_deinit(void);
private:
void OnAnimatorStop(OHOS::UIView &view)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnAnimatorStop");
+ boot_animation_flag = true;
ClearAll();
OHOS::RootView::GetInstance()->Remove(boot_group);
delete boot_group;
boot_group = nullptr;
- boot_animation_flag = true;
}
};
else
snprintf(buffer, sizeof(buffer), "%s6S240%d.%s", basePath, i , fileExtension);
imagePaths[i] = strdup(buffer);
- //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP," imagePaths[%d] = %s ", i, imagePaths[i]);
}
return imagePaths;
}
if (!g_initialized || !g_isScreenOn) {
return;
}
- if(get_printf())
- {
- printf("[g_timeInterval is %d ]\r\n",g_timeInterval);
- }
uapi_rtc_start(g_rtcHandle, g_timeInterval, UikitRTCCallBack, 0);
GraphicService::GetInstance()->UpdateGraphicEvent();
}
OHOS::LowPowerManager::GetInstance()->ExitLowPower();
uapi_rtc_start(g_rtcHandle, g_timeInterval, static_cast<rtc_callback_t>(UikitRTCCallBack), 0);
}
-
GraphicService::GetInstance()->NotifyScreenOn();
}
static void boot_animation_task(void *arg)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "boot_animation_task start");
unused(arg);
boot_group = ReBootAnimatorViewInit();
},
false);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "boot_animation_task end!!");
}
void ShowGraphicLogo(void)
{
while(boot_animation_flag == false)
{
- //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowGraphicLogo : %d ",boot_animation_flag);
LOS_Mdelay(1);
}
if (g_showLogo) {
{
while(boot_animation_flag == false)
{
- //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowGraphicLogo : %d ",boot_animation_flag);
LOS_Mdelay(1);
}
if (g_showOtaLogo) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"create boot_animation_task failed %d!",ret);
return ;
}
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"create boot_animation_task succed");
}
#ifdef __cplusplus