\r
#endif\r
\r
-#ifdef ENABLE_CUSTOM_SPI\r
- custom_spi_init(SPI_BUS_0);\r
-#endif\r
\r
/*启动蓝牙ble服务,cywee有重置 mac地址的操作,会需要把 蓝牙服务开启放在cywee服务之后*/\r
#ifdef CUSTOM_UTILS\r
/*\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-03-30 09:14:38\r
- * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-07-22 16:37:02\r
+ * @LastEditors: penglei 1624952103@qq.com\r
+ * @LastEditTime: 2025-07-14 15:27:15\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp\r
*/\r
#include "AppViewIDs.h"\r
#include "custom_runtime.h"\r
\r
#include "NativeRegisterManager.h"\r
-\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
+#include "cywee_service.h"\r
+#endif\r
namespace OHOS\r
{\r
REGIST_SLICE(VIEW_DISPLAY_BRIGHTNESS, DisplayBrightnessView, DisplayBrightnessPresenter);\r
{\r
case UICheckBox::SELECTED:\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched on!");\r
- uapi_take_to_wake(WRIST_RAISE_TO_WAKE_ENABLED);\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
+ cywee_hand_wake_switch(WRIST_RAISE_TO_WAKE_ENABLED); // 关闭抬腕亮屏,和息屏\r
+#endif\r
mmi_flip_wrist_switch_set(true);\r
break;\r
case UICheckBox::UNSELECTED:\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched off!");\r
- uapi_take_to_wake(WRIST_RAISE_TO_WAKE_DISENABLED);\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
+ cywee_hand_wake_switch(WRIST_RAISE_TO_WAKE_DISENABLED); // 关闭抬腕亮屏,和息屏\r
+#endif\r
mmi_flip_wrist_switch_set(false);\r
break;\r
default:\r
#include "NativeAbility.h"
#include <custom_runtime.h>
#include "uiservice/include/ui_service.h"
+#ifdef SUPPORT_CYWEE_SERVICE
+#include "cywee_service.h"
+#endif
namespace OHOS
{
uapi_set_screen_on_api();
// ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 关机动画已经开始了不能息屏
- uapi_take_to_wake(0); // 关闭抬腕亮屏,和息屏
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(0); // 关闭抬腕亮屏,和息屏
+#endif
NativeAbility::GetInstance().SetCurSlicePriority(0); // 设置Slice优先级为最高,防止弹窗出现
#include "ui_service.h"
#include "ConfigModelC.h"
#include "power_display_service.h"
-
+#ifdef SUPPORT_CYWEE_SERVICE
+#include "cywee_service.h"
+#endif
namespace OHOS
{
}
// disable flip wrist
- uapi_take_to_wake(0);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(0); // 关闭抬腕亮屏,和息屏
+#endif
// turn down brightness
const power_display_svr_api_t *display_api = power_display_svr_get_api();
// enable flip wrist
if(true == mmi_flip_wrist_switch_get())
{
- uapi_take_to_wake(1);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(1); // 关闭抬腕亮屏,和息屏
+#endif
}
// reset brightness
#endif
#endif
+#ifdef SUPPORT_CYWEE_SERVICE
+#include "cywee_hal.h"
+#endif
+
namespace OHOS {
#ifdef __cplusplus
void MsgCenterNotifyInactivityProc(const Topic topic, Request *req)
{
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "MsgCenterNotifyInactivityProc !");
- #ifdef SUPPORT_CYWEE_SERVICE
- cywee_inactivity_result_t *cywee_Inactivity_Info = (cywee_inactivity_result_t *)malloc(req->len);
+#ifdef SUPPORT_CYWEE_SERVICE
+ inact_result_t *cywee_Inactivity_Info = (inact_result_t *)malloc(req->len);
if (!cywee_Inactivity_Info)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Memory allocation failure");
return;
}
- int rets = memcpy_s(cywee_Inactivity_Info, req->len, (cywee_inactivity_result_t*)req->data, req->len);
+ int rets = memcpy_s(cywee_Inactivity_Info, req->len, (inact_result_t*)req->data, req->len);
if (rets != EOK)
{
free(cywee_Inactivity_Info);
}
else if(cywee_Inactivity_Info->status==9)
{
- set_stand_falg();
+ cywee_set_stand_flag();
}
break;
default:
free(cywee_Inactivity_Info);
cywee_Inactivity_Info = NULL;
- #endif
+#endif
}
//查找手表通知
{
// send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_CLOSE_HRS_BLE);
#ifdef SUPPORT_CYWEE_SERVICE
- cywee_log_switch(0);
+ cywee_set_log_switch(0);
#endif
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cwm_ble_switch false");
}
{
// send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_OPEN_HRS_BLE);
#ifdef SUPPORT_CYWEE_SERVICE
- cywee_log_switch(1);
+ cywee_set_log_switch(1);
#endif
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cwm_ble_switch true");
}
#include "ConfigModelC.h"
#include "ConfigModel.h"
#include "transmitting.h"
+#ifdef SUPPORT_CYWEE_SERVICE
+#include "cywee_service.h"
+#endif
// #include "languagecode/LanguageInit.h"
namespace OHOS
{
}
display_api->set_auto_timeout_function(true);
- uapi_take_to_wake(1);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(1); // 关闭抬腕亮屏,和息屏
+#endif
RootView::GetInstance()->Remove(UIViewGroup_transmitting);
delete UIViewGroup_transmitting;
display_api->turn_on_screen();
}
display_api->set_auto_timeout_function(false);
- uapi_take_to_wake(0);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(0); // 关闭抬腕亮屏,和息屏
+#endif
NotificationManager::GetInstance()->RegisterNotifyCleanupFunction(Freetransmitting);
'SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION',
# 'SUPPORT_AT_CUSTOMUTILS',
'SUPPORT_BLE_SERVICE',
+ 'SUPPORT_PPG_SERVICE',
+ 'SUPPORT_CYWEE_SERVICE',
'SUPPORT_BATTERY_SERVICE',
'FD230',
# 'SUPPORT_AUTO_OTA_SERVER',
'audio_at_service',
'media_at_service',
'bt_manager_at_service',
- "ppg_sensor",
+ "ppg_sensor_hx3695",
# "ppgBleService",
"mag_sensor_mmc5603",
"vibrator",
"rotary_encoder",
"nativelauncher",
"ppg_service",
- #"cywee_service",
+ "cywee_service",
"batterry_service",
"bleservice",
"blemoder",
"mag_hal",
"mag_service",
"cywee_dml",
- "cywee_hal",
#"cyweeBleService",
- "cywee_data",
],
'image_analysis': False,
'fs_image_path':'fd230',
'CONFIG_PWM_SUPPORT',
# 'ACC_LIS2DOC',
'ENABLE_CUSTOM_I2C',
- #'ENABLE_CUSTOM_SPI',
'MAG_MMC5603',
'ENABLE_VIBRATOR',
'ENABLE_SLIP',
\r
void cst86xx_get_chip_id(uint16_t *chip_id)\r
{\r
- *chip_id = g_cst86xx_drv.chip_id;\r
+ ext_errno ret = cst86xx_tp_i2c_data_read(CST86XX_HW_ID, chip_id, 1);\r
+ if (ret != EXT_ERR_SUCCESS) {\r
+ tp_err("configuration error (read chip id) 0x%x", ret);\r
+ return EXT_ERR_FAILURE;\r
+ }\r
}\r
\r
#ifdef __cplusplus\r
/*get chip id*/
ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID, &chip_id[0], 1);
if (ret != EXT_ERR_SUCCESS) {
- tp_err("222222222get ic information, error1");
+ tp_err("get ic information, error1");
return EXT_ERR_TP_ZTW523_POWERUP_READ_CHIPID;
}
ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID2, &chip_id[1], 1);
if (ret != EXT_ERR_SUCCESS) {
- tp_err("3333333get ic information, error2");
+ tp_err("get ic information, error2");
return EXT_ERR_TP_ZTW523_POWERUP_READ_CHIPID;
}
// tp_print("11111111111111get ic information, chip id = 0x%02x%02x", chip_id[0], chip_id[1]);
return EXT_ERR_SUCCESS;
}
+void ft6x46_get_chip_id(uint16_t *id)
+{
+ ext_errno ret;
+ uint8_t chip_id[2] = {0};
+ /*get chip id*/
+ ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID, &chip_id[0], 1);
+ if (ret != EXT_ERR_SUCCESS) {
+ PRINT("get ic information error1");
+ } else {
+ ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID2, &chip_id[1], 1);
+ if (ret != EXT_ERR_SUCCESS) {
+ PRINT("get ic information error2");
+ } else
+ {
+ PRINT("TOUCH CHIP ID = 0x%02x%02x \r\n", chip_id[0], chip_id[1]);
+ *id = (chip_id[0] & 0XFF) << 8 | (chip_id[1] & 0XFF);
+ //sprintf(id,"0x%02x%02x", chip_id[0], chip_id[1]);
+ }
+ }
+}
+
#ifdef __cplusplus
#if __cplusplus
}
ext_errno ft6x46_suspend(void);
ext_errno ft6x46_irq_callback(uint8_t *data_buf, uint8_t data_len);
ext_errno ft6x46_host_init_sample(void);
+void ft6x46_get_chip_id(uint16_t *id);
+
#ifdef __cplusplus
#if __cplusplus
}
#endif\r
uapi_gpio_enable_interrupt(TOUCH_INT_GPIO); // open tp_int gpio interrupt\r
}\r
+\r
+void touch_getid(uint16_t *id)\r
+{\r
+#ifdef TPTYPE_FT6X46\r
+ ft6x46_get_chip_id(id);\r
+#elif defined TPTYPE_CST86XX\r
+ cst86xx_get_chip_id(id);\r
+#endif\r
+}
\ No newline at end of file
#endif
void pm_sikey_suspend(void) {
- // custom_i2c_suspend();
+ custom_i2c_suspend();
-#ifdef ENABLE_CUSTOM_SPI
- custom_spi_suspend();
-#endif
//ADD alipay I2C3 suspend,
alipay_suspend();
}
void pm_sikey_resume(void){
- // custom_i2c_resume();
-
-#ifdef ENABLE_CUSTOM_SPI
- custom_spi_resume();
-#endif
-
+ custom_i2c_resume();
+
alipay_resume();
}
void pm_core_suspend(void)
void boot_animation_init_deinit(void)
{
+ if(taskcfg.task_handle == NULL)
+ return;
+
errcode_t ret = uapi_terminate_thread(taskcfg.task_handle);
if(ret != ERRCODE_SUCC)
+/*
+ * @Author: penglei 1624952103@qq.com
+ * @Date: 2025-05-15 11:28:07
+ * @LastEditors: penglei 1624952103@qq.com
+ * @LastEditTime: 2025-07-11 10:48:11
+ * @FilePath: /FD230/code/sdk/zhihui/4g/cat1Service/include/cat1_utils.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
/**
* Copyright (c) @CompanyNameMagicTag 2023-2023. All rights reserved. \n
*
#define TASK_PRIORITY_DFX_MSG (osPriority_t)(18)
#define TASK_PRIORITY_TRANSMIT (osPriority_t)(20)
-void uapi_poweroff_device(void);
-void uapi_reboot_device(void);
-
/*sntp同步UTC 时间 , 采用默认timezone,或者已经保存的timezone*/
errcode_t cat1_sntp_set_time_utc(uint32_t seconds);
* @Author: penglei 1624952103@qq.com\r
* @Date: 2024-08-23 10:50:37\r
* @LastEditors: penglei 1624952103@qq.com\r
- * @LastEditTime: 2024-11-05 14:34:43\r
+ * @LastEditTime: 2025-07-11 10:35:58\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230/nativeapp/nativeui/producttest/include/testPresenter.h\r
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
*/\r
CHARG,\r
SPEAK,\r
MOTOR,\r
-#ifdef SUPPORT_CAT1_MODEM\r
+#ifdef SUPPORT_CAT1_SERVICE\r
CAT1,\r
#endif\r
BUTTON,\r
#include "producttest/include/testbt.h"\r
#include "producttest/include/testSEChipTest.h"\r
#include "producttest/include/testPing.h"\r
+#ifdef SUPPORT_GNSS\r
#include "producttest/include/testGPS.h"\r
+#endif\r
+#ifdef ENABLE_LQBP002TA\r
#include "producttest/include/testpressure.h"\r
-\r
+#endif\r
#ifdef SUPPORT_A5133_SERVICE\r
#include "producttest/include/testA5133.h"\r
#endif\r
bool ChangeBTTESTView(int16_t thisView);\r
bool ChangeSEChipTESTView(int16_t thisView);\r
bool ChangePingTESTView(int16_t thisView);\r
+#ifdef SUPPORT_GNSS\r
bool ChangeGPSTESTView(int16_t thisView);\r
+#endif\r
+#ifdef ENABLE_LQBP002TA\r
bool ChangepressureTestTESTView(int16_t thisView);\r
+#endif\r
#ifdef SUPPORT_A5133_SERVICE\r
bool ChangeA5133TESTView(int16_t thisView);\r
#endif\r
testCHANINGView *test_charging_view{nullptr};\r
testSPEAKView *test_speak_view{nullptr};\r
testMOTORView *test_motor_view{nullptr};\r
- // #ifdef SUPPORT_CAT1_MODEM\r
testcat1View *test_cat1_view{nullptr};\r
- // #endif\r
testbuttonView *test_KEY_view{nullptr};\r
testMagicView *test_MG_view{nullptr};\r
testhrsenson1View *test_hr_view{nullptr};\r
\r
testSEChipView *test_SEChip_view{nullptr};\r
testPingView *test_Ping_view{nullptr};\r
+#ifdef SUPPORT_GNSS\r
testGPSView *test_GPS_view{nullptr};\r
+#endif\r
+#ifdef ENABLE_LQBP002TA\r
testpressureView * test_pressure_view{nullptr};\r
- \r
+#endif\r
#ifdef SUPPORT_A5133_SERVICE\r
testA5133View *test_A5133_view{nullptr};\r
#endif\r
+/*
+ * @Author: penglei 1624952103@qq.com
+ * @Date: 2025-07-10 12:16:09
+ * @LastEditors: penglei 1624952103@qq.com
+ * @LastEditTime: 2025-07-11 10:55:46
+ * @FilePath: /FD230/code/sdk/zhihui/UI/producttest/include/testhrsenson.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
#ifndef TEST_HRSENSON_VIEW_H
#define TEST_HRSENSON_VIEW_H
UIScrollView *testhrsensonInitIView(uint8_t);
void ClearAll(void);
void setgrayvalue(int,int,int);
- void setlightvalue(int g,int r,int ir);
+ void setlightvalue(void);
private:
UILabelButtonExt *SetTheButton_ext(ButtonConfig_ext_t &buttonconfig);//, UIView::OnTouchListener *clickListener);
UILabel *InitLabel(LabelConfig &labelConfig);
}\r
if(strcmp(view.GetViewId(),"shutdown") == 0)\r
{\r
- #ifdef FD230_650\r
+ // #ifdef FD230_650\r
uapi_poweroff_device();\r
- #endif\r
+ // #endif\r
return true;\r
}\r
if(strcmp(view.GetViewId(),"reset") == 0)\r
{\r
- #ifdef FD230_650\r
+ // #ifdef FD230_650\r
uapi_reboot_device();\r
- #endif\r
+ // #endif\r
\r
return true;\r
}\r
{CHARG, "chargingButton", "bat&charger", "chargingButton_next", &testView::ChangchargingTESTView, true},\r
{SPEAK, "speakButton", "speak", "speakButton_next", &testView::ChangspeakTESTView, true},\r
{MOTOR, "motorButton", "motor", "motorButton_next", &testView::ChangmotorTESTView, true},\r
-#ifdef SUPPORT_CAT1_MODEM\r
+#ifdef SUPPORT_CAT1_SERVICE\r
{CAT1, "cat1button", "CAT1", "cat1button_next", &testView::ChangeCAT1TESTView, true},\r
#endif\r
{BUTTON, "buttonbutton", "button", "buttonbutton_next", &testView::ChangKEYTESTView, true},\r
#if defined(SUPPORT_GNSS)\r
{GPSTEST, "GPSTestbutton", "GPSTest", "GPSTestbutton_next", &testView::ChangeGPSTESTView, true},\r
#endif\r
+#ifdef ENABLE_LQBP002TA\r
{PRESSURETEST, "pressureTestbutton", "pressureTest", "pressureTestbutton_next", &testView::ChangepressureTestTESTView, true},\r
+#endif\r
#ifdef AGINGTEST\r
{OLDTEST, "oldtestbutton", "aging", "oldtestexit", &testView::ChangeoldTESTView, true},\r
#endif\r
delete test_motor_view; // 7\r
test_motor_view = nullptr;\r
}\r
-#ifdef SUPPORT_CAT1_MODEM\r
+#ifdef SUPPORT_CAT1_SERVICE\r
if (test_cat1_view)\r
{\r
delete test_cat1_view; // 8\r
}\r
return true;\r
}\r
-\r
+#if defined(SUPPORT_GNSS)\r
bool testView::ChangeGPSTESTView(int16_t thisView)\r
{\r
-#if defined(SUPPORT_GNSS)\r
+\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSEChipTESTView");\r
SystemScrollView[thisView] = test_GPS_view->testGPSInitIView((uint8_t)thisView);\r
group->Add(SystemScrollView[thisView]);\r
}\r
-#endif\r
+\r
return true;\r
}\r
-\r
+#endif\r
+#ifdef ENABLE_LQBP002TA\r
bool testView::ChangepressureTestTESTView(int16_t thisView)\r
{\r
\r
\r
return true;\r
}\r
-\r
+#endif\r
#ifdef SUPPORT_A5133_SERVICE\r
bool testView::ChangeA5133TESTView(int16_t thisView)\r
{\r
test_motor_view = nullptr;\r
SystemScrollView[hideView] = nullptr;\r
break;\r
-#ifdef SUPPORT_CAT1_MODEM\r
+#ifdef SUPPORT_CAT1_SERVICE\r
case CAT1:\r
group->Remove(SystemScrollView[hideView]);\r
delete test_cat1_view;\r
SystemScrollView[hideView] = nullptr;\r
break;\r
#endif\r
+#if defined(ENABLE_LQBP002TA)\r
case PRESSURETEST:\r
group->Remove(SystemScrollView[hideView]);\r
delete test_pressure_view;\r
test_pressure_view = nullptr;\r
SystemScrollView[hideView] = nullptr;\r
break;\r
-\r
+#endif\r
default:\r
break;\r
}\r
MG_TEST_FALG++;
gsenson_t t;
- // get_gsonsen_xyz(&t);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_get_gsensor_data(1,&t);
+#endif
char buf[124]={0};
float x_t=t.x;
float y_t=t.y;
#include "producttest/include/testhrsenson.h"
#include "AlarmClockModel.h"
#include "cmsis_os2.h"
-#ifdef SUPPORT_CAT1_SERVICE
-#include "cat1_server.h"
-#include "cat1_ctl.h"
-#include "cat1_server_hal.h"
-#endif
-#include "ppg_service.h"
#include "producttest/include/testView.h"
#ifdef __cplusplus
#if __cplusplus
#endif
#include "pm_veto.h"
#include "pm.h"
-#ifdef PPG_VC9202
- #include "vc9202_user.h"
+
+#ifdef SUPPORT_PPG_SERVICE
+#include "ppg_service.h"
+#include "ppg_hal.h"
#endif
+
#ifdef __cplusplus
#if __cplusplus
}
testhrsenson1View::testhrsenson1View()
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "testhrsenson1View::testhrsenson1View");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemAboutTheWatchView::SystemAboutTheWatchView");
g_pSystemAboutTheWatchView = this;
}
static bool button_falg=true;
void testhrsenson1View:: setgrayvalue(int g,int r,int ir)
{
-
- if(label_hrsenson_value_vison!=NULL)
- {
-
- char buf[124]={0};
- sprintf(buf,"gray:\n green:%d\nred:%d\nir:%d",g,r,ir);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s",buf);
- label_hrsenson_value_vison->SetText(buf);
- RootView::GetInstance()->Invalidate();
-#ifdef SUPPORT_PPG_SERVICE
- int8_t md = PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST;
- send_ppg_cmd_msg(md);
-#endif
- button_falg=true;
- }
}
- void testhrsenson1View:: setlightvalue(int g,int r,int ir)
+ void testhrsenson1View:: setlightvalue(void)
{
char buf[124]={0};
-
if(label_hrsenson_value_vison!=nullptr)
{
-#ifdef PPG_HX3695
- sprintf(buf,"leaklight:\ngreen:%d\nred:%d\nir:%d",g,r,ir);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s",buf);
- label_hrsenson_value_vison->SetText(buf);
- RootView::GetInstance()->Invalidate();
-#ifdef SUPPORT_PPG_SERVICE
- int8_t md = PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST;
- send_ppg_cmd_msg(md);
-#endif
- button_falg=true;
-#elif defined PPG_VC9202
- //漏光测试
- // send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_LEAKLIGHT_TEST);
- LOS_Msleep(500);
- uint32_t led_cur = 0;
- uint32_t apre_val = 0;
- uint32_t aps_val = 9;
- vc9202_get_leaklight_data(&led_cur,&apre_val,&aps_val);
-#ifdef SUPPORT_PPG_SERVICE
+#ifdef SUPPORT_PPG_SERVICE
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_LEAKLIGHT_TEST);
+ LOS_Msleep(1000);
+ uint32_t ch0 = 0;
+ uint32_t ch1 = 0;
+ uint32_t ch2 = 0;
+ ppg_get_leaklight_data(&ch0,&ch1,&ch2);
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);
-#endif
- sprintf(buf,"leaklight:\ngreen:%d\nred:%d\nir:%d",led_cur,apre_val,aps_val);
+ sprintf(buf,"leaklight:\ngreen:%d\nred:%d\nir:%d",ch0,ch1,ch2);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s",buf);
label_hrsenson_value_vison->SetText(buf);
RootView::GetInstance()->Invalidate();
button_falg=true;
-#endif
+#endif
}
}
{
if(button_1!=NULL)
{
-#ifdef SUPPORT_PPG_SERVICE
- int8_t md = PPG_SERVICE_CMD_TYPE_DO_GRAYCARD_TEST;
- send_ppg_cmd_msg(md);
+#ifdef SUPPORT_PPG_SERVICE
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_GRAYCARD_TEST);
#endif
button_falg=false;
}
{
if(button_2!=NULL)
{
-#ifdef SUPPORT_PPG_SERVICE
- int8_t md = PPG_SERVICE_CMD_TYPE_DO_LEAKLIGHT_TEST;
- send_ppg_cmd_msg(md);
-#endif
- button_falg=false;
-#ifdef PPG_VC9202
- testhrsenson1View::setlightvalue(0,0,0);
-#endif
+ button_falg=false;
+ testhrsenson1View::setlightvalue();
}
-
}
UILabel *testhrsenson1View::InitLabel(LabelConfig &labelConfig)
testhrsensonScrollView->SetTouchable(true);
testhrsensonScrollView->SetDraggable(true);
-#ifdef SUPPORT_PPG_SERVICE
+
int8_t md = PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST;
send_ppg_cmd_msg(md);
-#endif
+
uint8_t cnt = pm_veto_get_id_cnt(PM_ID_P_TEST);
if (cnt == 0) {
uapi_pm_add_sleep_veto(PM_ID_P_TEST);
#endif
#include "../../../../../zhihui/drivers/vibrator/service/vibrator_service.h"
+#ifdef SUPPORT_CYWEE_SERVICE
+#include "cywee_service.h"
+#endif
+
#ifdef SUPPORT_CAT1_SERVICE
extern "C" {
#include "cat1_server.h"
bool isOpen = mmi_flip_wrist_switch_get();
if(isOpen == true)
{
- uapi_take_to_wake(1);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(1); // 关闭抬腕亮屏,和息屏
+#endif
}
else
{
- uapi_take_to_wake(0);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(0); // 关闭抬腕亮屏,和息屏
+#endif
}
}
add_subdirectory_if_exist(service)
-add_subdirectory_if_exist(hal)
add_subdirectory_if_exist(dml)
-add_subdirectory_if_exist(data)
add_subdirectory_if_exist(ble_service)
\ No newline at end of file
+++ /dev/null
-#===============================================================================
-# @brief cmake file
-# Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved.
-#===============================================================================
-
-set(COMPONENT_NAME "cywee_data")
-
-set(PUBLIC_HEADER
-${CMAKE_CURRENT_SOURCE_DIR}
-)
-
-set(SOURCES
-${CMAKE_CURRENT_SOURCE_DIR}/cywee_data.c
-)
-
-set(COMPONENT_PUBLIC_CCFLAGS
-)
-
-set(COMPONENT_CCFLAGS
-
-)
-
-set(WHOLE_LINK
- true
-)
-
-set(MAIN_COMPONENT
- false
-)
-
-set(PUBLIC_DEFINES
-)
-
-set(PRIVATE_DEFINES
-)
-
-build_component()
set(COMPONENT_NAME "cywee_dml")
set(SOURCES
-${CMAKE_CURRENT_SOURCE_DIR}/main_dml.c
+${CMAKE_CURRENT_SOURCE_DIR}/cywee_dml.c
${CMAKE_CURRENT_SOURCE_DIR}/test_api.c
${CMAKE_CURRENT_SOURCE_DIR}/board_yh601s.c
${CMAKE_CURRENT_SOURCE_DIR}/custom_factory_core.c
${CMAKE_CURRENT_SOURCE_DIR}/custom_factory_impl.c
+${CMAKE_CURRENT_SOURCE_DIR}/cywee_data.c
)
set(PUBLIC_HEADER
${CMAKE_CURRENT_SOURCE_DIR}
)
set(PUBLIC_DEFINES
- CYWEE_DML
+
)
set(PRIVATE_HEADER
static uint8_t g_cywee_installed = 0;
-extern uint8_t cywee_ble_service_flag;
-
/************************/
/*** Function Defines ***/
/************************/
{
PRINT("%s", format);
#ifdef SUPPORT_CYWEE_BLE_SERVICE
- if(cywee_ble_service_flag == 1)
+ if(cywee_dml_get_log_flag())
ble_cywee_server_send_input_report((uint8_t *)format,strlen(format));
#endif
return 0;
* @Author: penglei 1624952103@qq.com
* @Date: 2024-04-08 14:53:31
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-05-20 17:13:34
- * @FilePath: /FD230/code/sdk/drivers/peripheral/cywee/service/cywee_hal.c
+ * @LastEditTime: 2025-07-10 14:31:06
+ * @FilePath: /FD230/code/sdk/drivers/peripheral/cywee/service/cywee_dml.c
* @Description:
*
* Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
-#include "cywee_hal.h"
+#include "cywee_dml.h"
#include "custom_utils.h"
#include <sys/stat.h>
#include "cywee_data.h"
#include <string.h>
#include <stdarg.h>
#include <cwm_lib.h>
-#include <cwm_lib_dml.h>
-#include "cywee_hal.h"
+#include <cwm_lib.h>
+#include "cywee_dml.h"
#include "power_display_service.h"
#include "broadcast_feature.h"
#include "cmsis_os2.h"
#include "custom_save_runtime.h"
#include "cywee_data.h"
#include "cywee_dml.h"
-#include "cywee_hal.h"
+#include "cwm_lib_dml.h"
#ifdef SUPPORT_GNSS
#include "gnss_ctl.h"
#include "NMEA0183.h"
static inact_ext_result_t c_inact_ext_result_t = {0};
static act_ext_result_t c_act_ext_result_t = {0};
+uint8_t cywee_ble_service_flag = 0;
+
#define SPORT_CHECK_MS 1000
int cm__hs1__deinit(void);
#endif
-SLEEP_T cywee_dml_get_sleep_time_data(void)
+void cywee_get_sleep_time_data(SLEEP_T *sleep_data)
{
- SLEEP_T data = {0};
- data.fall_asleep_timestamp = fall_asleep_timestamp;
- data.wake_up_timestamp = wake_up_timestamp;
- data.total_time = total_time;
- return data;
+ if (sleep_data == NULL)
+ return;
+
+ sleep_data->fall_asleep_timestamp = fall_asleep_timestamp;
+ sleep_data->wake_up_timestamp = wake_up_timestamp;
+ sleep_data->total_time = total_time;
}
-uint8_t cywee_dml_get_log_flag(void)
+uint8_t cywee_get_log_flag(void)
{
return cywee_log_flag;
}
-void cywee_gnss_update(void)
+static void cywee_gnss_update(void)
{
#ifdef SUPPORT_GNSS
gps_data_t *gps_data = getGPSGlobaldata();
#endif
}
-void cywee_hrs_update(void)
+static void cywee_hrs_update(void)
{
uint8_t hrs_data = 0;
#ifdef SUPPORT_PPG_SERVICE
uapi_get_YYMMDD_Time_extend(day, '\0', 0);
}
-void cywee_dml_check_acc(void)
+void cywee_check_acc(void)
{
if(!timeout)
{
- cywee_dml_restart_acc();
+ cywee_restart_acc();
}
else
{
}
}
-void clean_sleep_data(void)
+static void clean_sleep_data(void)
{
total_time = 0;
total_deep_sleep_time = 0;
wake_up_flag = 0;
}
-void cywee_set_sleep_time_data(inact_ext_result_t *sleep_data)
+static void cywee_set_sleep_time_data(inact_ext_result_t *sleep_data)
{
memset(&sleep_time, 0, sizeof(inact_ext_result_t));
memcpy_s(&sleep_time, sizeof(inact_ext_result_t), sleep_data, sizeof(inact_ext_result_t));
}
-void cywee_dml_save_sleep_data(void)
+static void cywee_save_sleep_time_data(void)
+{
+ // if (access(time_file_path, 0) == -1)
+ {
+ char day[12] = {0};
+ memset(time_file_path, 0, sizeof(time_file_path));
+ get_sleep_file_day(day);
+ sprintf_s(time_file_path, 64, SLEEP_TIME_PATH, day);
+ }
+
+ FILE *fp;
+ fp = fopen(time_file_path, "wb+");
+ if(fp == NULL)
+ {
+ CWM_OS_dbgPrintf("save_sleep_data fopen fail \n");
+ return;
+ }
+
+ uint8_t sleep_type = 1;
+ fwrite(&sleep_type, 1, 1, fp);
+
+ fwrite(&fall_asleep_timestamp, 1, 4, fp);
+
+ if (wake_up_timestamp == 0)
+ {
+ uapi_get_timestampe_ss(&wake_up_timestamp);
+ }
+
+ fwrite(&wake_up_timestamp, 1, 4, fp);
+
+ total_time = (wake_up_timestamp - fall_asleep_timestamp) / 60;
+
+ uint8_t total_time_hour = (total_time / 60);
+ fwrite(&total_time_hour, 1, 1, fp);
+
+ uint8_t total_time_minute = (total_time % 60);
+ fwrite(&total_time_minute, 1, 1, fp);
+
+ total_deep_sleep_time += sleep_time.total_deep_sleep_time;
+
+ total_time_hour = (total_deep_sleep_time / 60);
+ fwrite(&total_time_hour, 1, 1, fp);
+
+ total_time_minute = (total_deep_sleep_time % 60);
+ fwrite(&total_time_minute, 1, 1, fp);
+
+ total_mild_sleep_time += sleep_time.total_mild_sleep_time;
+ total_time_hour = (total_mild_sleep_time / 60);
+ fwrite(&total_time_hour, 1, 1, fp);
+
+ total_time_minute = (total_mild_sleep_time % 60);
+ fwrite(&total_time_minute, 1, 1, fp);
+
+ total_rem_sleep_time += sleep_time.total_rem_sleep_time;
+ total_time_hour = (total_rem_sleep_time / 60);
+ fwrite(&total_time_hour, 1, 1, fp);
+
+ total_time_minute = (total_rem_sleep_time % 60);
+ fwrite(&total_time_minute, 1, 1, fp);
+
+ total_wake_time = total_time - total_rem_sleep_time - total_mild_sleep_time -
+ total_deep_sleep_time;
+
+ total_time_hour = (total_wake_time / 60);
+ fwrite(&total_time_hour, 1, 1, fp);
+
+ total_time_minute = (total_wake_time % 60);
+ fwrite(&total_time_minute, 1, 1, fp);
+ fclose(fp);
+
+ if (ephemeral_flag) // 临时数据清掉
+ {
+ total_deep_sleep_time -= sleep_time.total_deep_sleep_time;
+ total_mild_sleep_time -= sleep_time.total_mild_sleep_time;
+ total_rem_sleep_time -= sleep_time.total_rem_sleep_time;
+ ephemeral_flag = 0;
+ }
+
+ // CWM_OS_dbgPrintf("wake_up_timestamp : %d ,fall_asleep_timestamp : %d \n",wake_up_timestamp,fall_asleep_timestamp);
+ // CWM_OS_dbgPrintf("total_time[%d], total_deep_sleep_time[%d], total_mild_sleep_time[%d], total_rem_sleep_time[%d], total_wake_time[%d] \n",
+ // total_time,total_deep_sleep_time,total_mild_sleep_time,total_rem_sleep_time,total_wake_time);
+
+ update_sleep_data(fall_asleep_timestamp,wake_up_timestamp,total_time);
+
+}
+
+static void cywee_save_sleep_stat_data(void)
+{
+ memset(status_file_path, 0, sizeof(status_file_path));
+ char day[12] = {0};
+ get_sleep_file_day(day);
+ sprintf_s(status_file_path, 64, SLEEP_STATUS_PATH, day);
+ if (access(status_file_path, 0) == -1) // 文件不存在 直接写入
+ {
+ uapi_save_file_data(status_file_path,(uint8_t *)sleep_stat,stat_num * sizeof(SLEEP_STAT_T),"wb+");
+ }
+ else // 文件已存在 需要判断是否需要补上清醒状态
+ {
+
+ FILE *fp = fopen(status_file_path, "rb+");
+ if (fp == NULL)
+ {
+ CWM_OS_dbgPrintf("save_sleep_data fopen fail \n");
+ return;
+ }
+
+ fseek(fp, -sizeof(SLEEP_STAT_T), SEEK_END);
+ SLEEP_STAT_T sleep_status = {0, 0};
+ fread(&sleep_status, sizeof(SLEEP_STAT_T), 1, fp);
+ if (sleep_status.stat == 4) // 如果存在出睡睡觉 替换为清醒
+ {
+ sleep_status.stat = 3; // 清醒状态
+ // sleep_status.timestamp = history_wake_up_timestamp; // 清醒状态时间为上一次的出睡时间
+ fseek(fp, -sizeof(SLEEP_STAT_T), SEEK_END);
+ fwrite(&sleep_status, sizeof(SLEEP_STAT_T), 1, fp); // 补上清醒状态
+ // fwrite(data->sleep_status, sizeof(SLEEP_STATE_T), data->status_num, fp); //写入本次睡眠状态
+ if(sleep_stat[0].stat == 0)
+ {
+ sleep_stat[0].stat = 1;
+ fwrite(sleep_stat, sizeof(SLEEP_STAT_T),stat_num, fp); // 跳过入睡状态写入文件
+ }
+ else
+ fwrite(sleep_stat, sizeof(SLEEP_STAT_T), stat_num, fp);
+
+ }
+ else // 不满足补清醒状态条件 直接写入本次睡眠状态
+ {
+ fseek(fp, 0, SEEK_END);
+ fwrite(sleep_stat, sizeof(SLEEP_STAT_T), stat_num, fp);
+ }
+ fclose(fp);
+ }
+
+ stat_num = 0;
+ memset(sleep_stat,0,SLEEP_STATUS_LENGTH * sizeof(SLEEP_STAT_T));
+
+ if(wake_up_flag)
+ uapi_dev_runtime_set_sleep_status(0);
+
+}
+
+static void cywee_set_sleep_stat_data(inact_result_t c_inact_result_t)
+{
+ uint32_t timestamp = 0;
+ if(stat_num < SLEEP_STATUS_LENGTH)
+ {
+ uapi_get_timestampe_ss_extend(×tamp,current_year,c_inact_result_t.month,c_inact_result_t.day,c_inact_result_t.hour,c_inact_result_t.minute,0);
+
+ sleep_stat[stat_num].timestamp = timestamp;
+ sleep_stat[stat_num].stat = c_inact_result_t.status;
+ // CWM_OS_dbgPrintf("stat : %d , timestamp : %d \n", sleep_stat[stat_num].stat,sleep_stat[stat_num].timestamp);
+ if(sleep_stat[stat_num].stat == 0) //0进入睡眠 1潜睡 2深睡 3清醒 4结束睡眠 6入睡 7出睡最后一笔输出 8未出睡最后一笔输出 12快速动眼 13取消入睡
+ {
+ if(fall_asleep_timestamp == 0)
+ fall_asleep_timestamp = sleep_stat[stat_num].timestamp;
+ }
+ else if(sleep_stat[stat_num].stat == 4)
+ {
+ //目前cywee出睡时间戳有bug 暂时先用系统时间戳
+ if(sleep_stat[stat_num].timestamp < fall_asleep_timestamp) //如果出睡时间戳小于入睡时间戳 获取系统时间戳作为出睡时间戳
+ {
+ uapi_get_timestampe_ss(×tamp);
+ sleep_stat[stat_num].timestamp = timestamp;
+ }
+ wake_up_timestamp = sleep_stat[stat_num].timestamp;
+ sleep_update_timestamp = wake_up_timestamp;
+ }
+ stat_num ++;
+ }
+}
+
+static void cywee_save_nap_time_data()
+{
+ if (access(nap_file_path, 0) == -1) //如果小睡文件不存在,创建睡眠文件夹
+ {
+ char day[12] = {0};
+ memset(dir_path,0,sizeof(dir_path));
+ memset(nap_file_path,0,sizeof(nap_file_path));
+
+ uapi_get_YYMMDD_Time(day, '\0');
+ sprintf_s(dir_path, 64, SLEEP_DIR_PATH, day);
+ uapi_create_folder(dir_path);
+ sprintf_s(nap_file_path, 64, NAP_PATH, day);
+ }
+
+
+ uint32_t size = uapi_get_file_size(nap_file_path);
+
+ FILE *fp;
+ fp = fopen(nap_file_path, "ab+"); //小睡数据全部存入一个文件
+ if(fp==NULL)
+ {
+ CWM_OS_dbgPrintf("save_nap_sleep_data %s fopen fail \n", nap_file_path);
+ return;
+ }
+
+ uint8_t id=size/14+1;
+
+ uint16_t nap_size=12;
+ fwrite(&nap_size, 1, 2, fp);
+
+ fwrite(&id, 1, 1, fp);
+
+ uint8_t sleep_type = 0; //不存睡眠类型 改用文件名判断
+ fwrite(&sleep_type, 1, 1, fp);
+
+ fwrite(&fall_asleep_timestamp, 1, 4, fp);
+
+ fwrite(&wake_up_timestamp, 1, 4, fp);
+
+ uint16_t total_time = sleep_time.total_time;
+
+ uint8_t total_time_hour = (total_time / 60);
+ fwrite(&total_time_hour, 1, 1, fp);
+
+ uint8_t total_time_minute = (total_time % 60);
+ fwrite(&total_time_minute, 1, 1, fp);
+
+ // CWM_OS_dbgPrintf("save_nap_sleep_data succ \n");
+
+ fclose(fp);
+
+}
+
+void cywee_save_sleep_data(void)
{
uapi_dev_runtime_set_sleep_storage_status(1);
- cywee_save_sleep_time_data(sleep_time);
+ cywee_save_sleep_time_data();
cywee_save_sleep_stat_data();
uapi_dev_runtime_set_sleep_storage_status(0);
}
-void cywee_dml_save_nap_data(void)
+void cywee_save_nap_data(void)
{
uapi_dev_runtime_set_sleep_storage_status(1);
- cywee_save_nap_data(sleep_time);
+ cywee_save_nap_time_data();
uapi_dev_runtime_set_sleep_storage_status(0);
}
-void static wear_file_check(SLEEP_STAT_T newStruct, const char *filename)
+static void wear_file_check(SLEEP_STAT_T newStruct, const char *filename)
{
FILE *fp;
uint16_t count = 0;
}
-void cywee_set_sleep_stat_data(inact_result_t c_inact_result_t)
-{
- uint32_t timestamp = 0;
- if(stat_num < SLEEP_STATUS_LENGTH)
- {
- uapi_get_timestampe_ss_extend(×tamp,current_year,c_inact_result_t.month,c_inact_result_t.day,c_inact_result_t.hour,c_inact_result_t.minute,0);
-
- sleep_stat[stat_num].timestamp = timestamp;
- sleep_stat[stat_num].stat = c_inact_result_t.status;
- // CWM_OS_dbgPrintf("stat : %d , timestamp : %d \n", sleep_stat[stat_num].stat,sleep_stat[stat_num].timestamp);
- if(sleep_stat[stat_num].stat == 0) //0进入睡眠 1潜睡 2深睡 3清醒 4结束睡眠 6入睡 7出睡最后一笔输出 8未出睡最后一笔输出 12快速动眼 13取消入睡
- {
- if(fall_asleep_timestamp == 0)
- fall_asleep_timestamp = sleep_stat[stat_num].timestamp;
- }
- else if(sleep_stat[stat_num].stat == 4)
- {
- //目前cywee出睡时间戳有bug 暂时先用系统时间戳
- if(sleep_stat[stat_num].timestamp < fall_asleep_timestamp) //如果出睡时间戳小于入睡时间戳 获取系统时间戳作为出睡时间戳
- {
- uapi_get_timestampe_ss(×tamp);
- sleep_stat[stat_num].timestamp = timestamp;
- }
- wake_up_timestamp = sleep_stat[stat_num].timestamp;
- sleep_update_timestamp = wake_up_timestamp;
- }
- stat_num ++;
- }
-}
static void cywee_set_abs_static(void)
{
CWM_SettingControl(SCL_ABS_STATIC_CONFIG, &scl);
}
-void cywee_dml_set_log_switch(int cmd)
+void cywee_set_log_switch(int cmd)
{
if(cmd)
{
}
}
-void cywee_dml_restart_acc(void)
+void cywee_restart_acc(void)
{
uint32_t tm = 0;
uapi_get_timestampe_ss(&tm);
CWM_SettingControl(SCL_DML_DRV_ENABLE, &scl);
}
-uint8_t cywee_dml_get_static_state(void)
+uint8_t cywee_get_static_state(void)
{
return is_static_state;
}
-uint8_t cywee_dml_get_active_state(void)
+uint8_t cywee_get_active_state(void)
{
return cywee_is_active;
}
CWM_SettingControl(SCL_DML_DRV_ENABLE, &scl);
}
-void cywee_dml_set_sedentary_switch(int cmd)
+void cywee_set_sedentary_switch(int cmd)
{
// CWM_OS_dbgPrintf("cywee_set_sedentary_switch : %d \n",cmd);
//设置久坐 0关,1开
CWM_SettingControl(SCL_SEDENTARY, &scl);
}
-void cywee_dml_set_sedentary_interval(int interval)
+void cywee_set_sedentary_interval(int interval)
{
sedentary_interval = interval;
}
-void cywee_dml_get_chipinfo(char *databuf,uint8_t len)
+void cywee_get_chipinfo(char *databuf,uint8_t len)
{
memcpy_s(databuf,len,chipInfo,strlen(chipInfo));
}
-void cywee_dml_get_version(char *databuf,uint8_t len)
+void cywee_get_version(char *databuf,uint8_t len)
{
memcpy_s(databuf,len,cywee_version,strlen(cywee_version));
}
-uint32_t cywee_dml_get_sport_data(uint8_t type)
+uint32_t cywee_get_sport_data(uint8_t type)
{
uint32_t data = 0;
switch (type)
return 0;
}
-void cywee_dml_set_sport_data(uint32_t data,uint8_t type)
+void cywee_set_sport_data(uint32_t data,uint8_t type)
{
switch (type)
{
}
}
-void cywee_dml_set_stand_flag(void)
+void cywee_set_stand_flag(void)
{
stand_flag = 1;
}
-uint8_t cywee_dml_get_stand_flag(void)
+uint8_t cywee_get_stand_flag(void)
{
return stand_flag;
}
-void cywee_dml_ar_alert_switch(int cmd)
+void cywee_ar_alert_switch(int cmd)
{
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
CWM_SettingControl(SCL_AR_ALERT_CONFIG, &scl);
}
-void cywee_dml_hand_updown_switch(int cmd)
+void cywee_hand_updown_switch(int cmd)
{
if(cmd == 1)
CWM_Sensor_Enable(IDX_ALGO_WATCH_HANDUP);
CWM_Sensor_Disable(IDX_ALGO_WATCH_HANDUP);
}
-void cywee_dml_reset_history_daily_data(void)
+void cywee_reset_history_daily_data(void)
{
stepcount=0;
new_distance=0;
// new_fat = 0; //当前燃脂数据
}
-void cywee_dml_reset_daily_data(void)
+void cywee_reset_daily_data(void)
{
memset(&scl, 0, sizeof(scl));
CWM_SettingControl(SCL_RESET_DAILY_INFO, &scl);
}
//INT[1] : 0 立即输出,但不中止睡眠。 1 立即输出且中止睡眠
-void cywee_dml_get_sleep_data(int cmd)
+void cywee_get_sleep_data(int cmd)
{
// CWM_OS_dbgPrintf("cywee_get_sleep_data\n");
memset(&scl, 0, sizeof(scl));
}
//1.age 2.sex 3.weight 4.height 5.method
-void cywee_dml_set_user_info(void)
+void cywee_set_user_info(void)
{
int user_info[5] = {0};
get_user_info_from_config_model(user_info);
int minute;// int[5] = minute (0 - 59)
int second;// int[6] = second (0 - 59)
*/
-void cywee_dml_time_sync(void)
+void cywee_time_sync(void)
{
time_t rawtime;
struct tm* timeinfo;
uapi_create_folder(dir_path);
}
-void cywee_dml_oncharging_update(int oncharging_status)
+void cywee_oncharging_update(int oncharging_status)
{
// CWM_OS_dbgPrintf("oncharging : %d\r\n",oncharging_status);
memset(&csd, 0, sizeof(CUSTOM_ON_CHARGING));
CWM_CustomSensorInput(&csd);
}
-void cywee_dml_wearstatus_update(int wearstatus)
+void cywee_wearstatus_update(int wearstatus)
{
#if 1
uapi_dev_runtime_set_wear_status(wearstatus);
}
//0:resume , 1:pause
-void cywee_dml_set_activity_mode_setstatus(int cmd)
+void cywee_set_activity_mode_setstatus(int cmd)
{
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
}
}
-void cywee_dml_inactivity_mode_change(int mode)
+void cywee_inactivity_mode_change(int mode)
{
// cywee_time_sync();
clean_sleep_data();
}
}
-void cywee_dml_activity_mode_change(int mode)
+void cywee_activity_mode_change(int mode)
{
if(mode != SPORT_ACTIVE_MODE_NORMAL)
cywee_sport_timer_start_check(SPORT_CHECK_MS);
}
}
-void cywee_dml_get_gsensor_data(uint8_t cnt,gsenson_t t[])
+void cywee_get_gsensor_data(uint8_t cnt,gsenson_t t[])
{
if(t == NULL)
return;
c_inact_ext_result_t.total_wake_time = (int)sensorEVT->fData[4];
c_inact_ext_result_t.total_rem_sleep_time = (int)sensorEVT->fData[5];
+ cywee_set_sleep_time_data(&c_inact_ext_result_t);
do_custom_fileoperate_service_check_msg(CUSTOM_FILEOPERATE_MSG_TYPE_SLEEPDATA_SAVE, NULL, 0);
// cywee_func(CYWEE_MSG_TYPE_INACTIVITY_ACCUMULATE_TIME_UPDATE,&c_inact_ext_result_t,sizeof(inact_ext_result_t));
// sleep_flag_t.timestamp = abs_static_timestampe;
// uapi_save_sleep_flag(&sleep_flag_t,sizeof(SLEEP_FLAG_T));
uapi_dev_runtime_set_absolute_static_status(1);
- cywee_dml_get_sleep_data(1);
+ cywee_get_sleep_data(1);
}
else
{
- cywee_dml_inactivity_mode_change(INACTIVITY_MODE_NOTHING);
+ cywee_inactivity_mode_change(INACTIVITY_MODE_NOTHING);
LOS_Msleep(50);
- cywee_dml_inactivity_mode_change(INACTIVITY_MODE_SLEEPING);
+ cywee_inactivity_mode_change(INACTIVITY_MODE_SLEEPING);
}
}
}
#ifdef AP_ENABLE_DML_SDO_LISTEN
-//void CWM_AP_dmlSensorDataOutput_listen(const dml_sensorData_t * pSdo) {
+//void CWM_APSensorDataOutput_listen(const dml_sensorData_t * pSdo) {
// if (pSdo->validData & DML_SENSOR_DATA_VALID_DT)
// CWM_OS_dbgPrintf("==dt: %d us\n", pSdo->dt_us);
static struct AccelerationData rawdata[25]; //自定义buffer,用来缓存sensor数据
static int AccdataCount = 0; //fifo长度
-void CWM_AP_dmlSensorDataOutput_listen(const dml_sensorData_t * pSdo)
+void CWM_APSensorDataOutput_listen(const dml_sensorData_t * pSdo)
{
if(AccdataCount < 25)
{
#endif
-int cywee_main_dml(void)
+int cywee_start(void)
{
if (cywee_installized == 1)
{
// This API allows customers to develop custom features.
// Specific settingControl commands needs to be called for this API to work.
// No need to enable or implement this function for general usage.
- CWM_Dml_sensorDataOutput_register(CWM_AP_dmlSensorDataOutput_listen);
+ CWM_Dml_sensorDataOutput_register(CWM_APSensorDataOutput_listen);
#endif
//CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
CWM_SettingControl(SCL_INACTIVITY_CONFIG, &scl);
//设置运动识别
- cywee_dml_ar_alert_switch(get_motion_recognition_from_config_model());
+ cywee_ar_alert_switch(get_motion_recognition_from_config_model());
//设置绝对静止
cywee_set_abs_static();
//CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
// cywee_restoreData();
- cywee_dml_set_user_info();
+ cywee_set_user_info();
- cywee_dml_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL);
+ cywee_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL);
- cywee_dml_oncharging_update(get_charge_stat()); //初始化时检查充电状态
+ cywee_oncharging_update(get_charge_stat()); //初始化时检查充电状态
g_sport_timer = osTimerNew((osTimerFunc_t)cywee_service_check_timer_callback, osTimerPeriodic, NULL, NULL);
//cywee_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY_AND_NAP);
#endif
-void cywee_dml_int_handler(void)
+void cywee_int_handler(void)
{
timeout = 1;
// if(cywee_switch == 1)
}
-act_result_t cywee_dml_get_act_data(void)
+void cywee_get_act_data(act_result_t *data)
{
- act_result_t data = {0};
- memcpy_s(&data,sizeof(act_result_t),&c_act_result_t,sizeof(act_result_t));
- return data;
+ if(data == NULL)
+ return;
+ memcpy_s(data,sizeof(act_result_t),&c_act_result_t,sizeof(act_result_t));
}
-act_ext_result_t cywee_dml_get_act_ext_data(void)
+void cywee_get_act_ext_data(act_ext_result_t *data)
{
- act_ext_result_t data = {0};
- memcpy_s(&data,sizeof(act_ext_result_t),&c_act_result_t,sizeof(act_ext_result_t));
- return data;
+ if(data == NULL)
+ return;
+ memcpy_s(data,sizeof(act_ext_result_t),&c_act_result_t,sizeof(act_ext_result_t));
}
* @Author: penglei 1624952103@qq.com
* @Date: 2025-05-19 14:25:40
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-05-21 11:53:41
- * @FilePath: /FD230/code/sdk/zhihui/drivers/cywee/dml/cywee_dml.h
+ * @LastEditTime: 2025-07-10 15:28:10
+ * @FilePath: /FD230/code/sdk/zhihui/drivers/cywee/dml/cywee.h
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**
extern void* CWM_OS_malloc(int size);
extern void CWM_OS_free(void *ptr);
-
-/********************CYWEE LIB*************************/
-
-#define SPORT_ACTIVE_MODE_NORMAL 1001 // 一般模式(生活模式) normal(base) 1001
-#define SPORT_ACTIVE_MODE_TREADMILL 1002 // 跑步機 treadmill 1002
-#define SPORT_ACTIVE_MODE_OUTDOOR_RUNNING 1003 // 戶外跑步 outdoor running 1003
-#define SPORT_ACTIVE_MODE_INDOOR_RUNNING 1006 // 室內跑步 indoor running 1006
-#define SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR 1008 // 防誤觸計步 fitness_pedometer 1008
-#define SPORT_ACTIVE_MODE_FREE_TRAINING 5001 // 自由運動 FreeTraining 5001
-//#define SPORT_ACTIVE_MODE_AR_ALERT 1001 // 長時間動作偵測 AR alert 1001
-#define SPORT_ACTIVE_MODE_AR_ALERT 102 // 長時間動作偵測 AR alert 1001
-#define SPORT_ACTIVE_MODE_EXTRA_INFO 100 // 额外信息 AR alert 1001
-
-#define INACTIVITY_MODE_NOTHING 0 // 无作用
-#define INACTIVITY_MODE_SEDENTARY 1 // 久坐和有效站立
-#define INACTIVITY_MODE_SLEEPING 2 // 睡眠
-#define INACTIVITY_MODE_SEDENTARY_AND_NAP 3 // 久坐、有效站立和小睡
-#define INACTIVITY_MODE_NAP 4 // 小睡
-
-#define INACTIVITY_MODE_SEDENTARY_OUTPUT 20 // 久坐和有效站立
-#define INACTIVITY_MODE_SLEEPING_OUTPUT 21 // 睡眠
-#define INACTIVITY_MODE_NAP_OUTPUT 22 // 小睡
-#define INACTIVITY_MODE_SLEEPING_ACCUMULATE_TIME_OUTPUT 31 // 睡眠累计
-#define INACTIVITY_MODE_NAP_ACCUMULATE_TIME_OUTPUT 32 // 小睡累计
-
#pragma pack(1)
/**
int mag_axis_setting;// int[2] = mag_axis setting (0: default, 1-24: axis_mode)
}input_sensor_config_t;
-uint8_t cywee_dml_get_log_flag(void);
-void cywee_dml_get_gsensor_data(uint8_t cnt,gsenson_t t[]);
-
-void cywee_dml_set_activity_mode_setstatus(int cmd);
-void cywee_dml_oncharging_update(int oncharging_status);
-void cywee_dml_wearstatus_update(int wearstatus);
-void cywee_hrs_update(void);
-void cywee_dml_set_user_info(void);
-void cywee_dml_get_sleep_data(int cmd);
-void cywee_dml_reset_daily_data(void);
-void cywee_dml_inactivity_mode_change(int mode);
-void cywee_dml_activity_mode_change(int mode);
-void cywee_dml_time_sync(void);
-void cywee_dml_hand_updown_switch(int cmd);
-void cywee_dml_ar_alert_switch(int cmd);
-
-void cywee_dml_set_stand_flag(void);
-uint8_t cywee_dml_get_stand_flag(void);
-
-void cywee_dml_get_chipinfo(char *databuf,uint8_t len);
-void cywee_dml_set_sedentary_interval(int interval);
-void cywee_dml_set_sedentary_switch(int cmd);
-
-void cywee_sensor_stop(void);
-uint8_t cywee_dml_get_active_state(void);
-uint8_t cywee_dml_get_static_state(void);
-void cywee_dml_restart_acc(void);
-void cywee_dml_set_log_switch(int cmd);
-void cywee_dml_get_version(char *databuf,uint8_t len);
-
-void cywee_dml_save_sleep_data(void);
-void cywee_dml_save_nap_data(void);
-
-void cywee_dml_reset_history_daily_data(void);
-void cywee_dml_check_acc(void);
-
-void cywee_custom_save_wear_data(void);
-
-uint32_t cywee_dml_get_sport_data(uint8_t type);
-void cywee_dml_set_sport_data(uint32_t data,uint8_t type);
-
-int cywee_main_dml(void);
-void cywee_dml_int_handler(void);
-
-act_result_t cywee_dml_get_act_data(void);
-act_ext_result_t cywee_dml_get_act_ext_data(void);
-
-SLEEP_T cywee_dml_get_sleep_time_data(void);
#pragma pack()
#define SLEEP_DATA_DIR "/user/userdata/sleep/"
+/********************CYWEE LIB*************************/
+
+#define SPORT_ACTIVE_MODE_NORMAL 1001 // 一般模式(生活模式) normal(base) 1001
+#define SPORT_ACTIVE_MODE_TREADMILL 1002 // 跑步機 treadmill 1002
+#define SPORT_ACTIVE_MODE_OUTDOOR_RUNNING 1003 // 戶外跑步 outdoor running 1003
+#define SPORT_ACTIVE_MODE_INDOOR_RUNNING 1006 // 室內跑步 indoor running 1006
+#define SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR 1008 // 防誤觸計步 fitness_pedometer 1008
+#define SPORT_ACTIVE_MODE_FREE_TRAINING 5001 // 自由運動 FreeTraining 5001
+//#define SPORT_ACTIVE_MODE_AR_ALERT 1001 // 長時間動作偵測 AR alert 1001
+#define SPORT_ACTIVE_MODE_AR_ALERT 102 // 長時間動作偵測 AR alert 1001
+#define SPORT_ACTIVE_MODE_EXTRA_INFO 100 // 额外信息 AR alert 1001
+
+#define INACTIVITY_MODE_NOTHING 0 // 无作用
+#define INACTIVITY_MODE_SEDENTARY 1 // 久坐和有效站立
+#define INACTIVITY_MODE_SLEEPING 2 // 睡眠
+#define INACTIVITY_MODE_SEDENTARY_AND_NAP 3 // 久坐、有效站立和小睡
+#define INACTIVITY_MODE_NAP 4 // 小睡
+
+#define INACTIVITY_MODE_SEDENTARY_OUTPUT 20 // 久坐和有效站立
+#define INACTIVITY_MODE_SLEEPING_OUTPUT 21 // 睡眠
+#define INACTIVITY_MODE_NAP_OUTPUT 22 // 小睡
+#define INACTIVITY_MODE_SLEEPING_ACCUMULATE_TIME_OUTPUT 31 // 睡眠累计
+#define INACTIVITY_MODE_NAP_ACCUMULATE_TIME_OUTPUT 32 // 小睡累计
+
typedef struct {
float x;
float y;
#pragma pack()
-void cywee_start(void);
-void cywee_stop(void);
-void cywee_int_handler(void);
+uint8_t cywee_get_log_flag(void);
+void cywee_get_gsensor_data(uint8_t cnt,gsenson_t t[]);
void cywee_set_activity_mode_setstatus(int cmd);
void cywee_oncharging_update(int oncharging_status);
void cywee_wearstatus_update(int wearstatus);
-void cywee_hrs_update(void);
void cywee_set_user_info(void);
void cywee_get_sleep_data(int cmd);
void cywee_reset_daily_data(void);
void cywee_time_sync(void);
void cywee_hand_updown_switch(int cmd);
void cywee_ar_alert_switch(int cmd);
-\
-void cywee_set_stand_falg(void);
-uint8_t cywee_get_stand_falg(void);
-uint8_t cywee_get_now_stand_count(void);
+
+void cywee_set_stand_flag(void);
+uint8_t cywee_get_stand_flag(void);
void cywee_get_chipinfo(char *databuf,uint8_t len);
void cywee_set_sedentary_interval(int interval);
void cywee_set_sedentary_switch(int cmd);
-// void cywee_get_acc_switch(int cmd);
+
void cywee_sensor_stop(void);
uint8_t cywee_get_active_state(void);
uint8_t cywee_get_static_state(void);
void cywee_set_log_switch(int cmd);
void cywee_get_version(char *databuf,uint8_t len);
-void cywee_custom_save_sleep_data(void);
-void cywee_custom_save_nap_data(void);
+void cywee_save_sleep_data(void);
+void cywee_save_nap_data(void);
+
void cywee_reset_history_daily_data(void);
void cywee_check_acc(void);
void cywee_custom_save_wear_data(void);
uint32_t cywee_get_sport_data(uint8_t type);
-void cywee_dml_set_sport_data(uint32_t data,uint8_t type);
+void cywee_set_sport_data(uint32_t data,uint8_t type);
+
+int cywee_start(void);
+void cywee_sensor_stop(void);
+void cywee_int_handler(void);
-act_result_t cywee_get_act_data(void);
-act_ext_result_t cywee_get_act_ext_data(void);
+void cywee_get_act_data(act_result_t *data);
+void cywee_get_act_ext_data(act_ext_result_t *data);
-void cywee_get_gsensor_data(uint8_t cnt,gsenson_t *data);
-SLEEP_T cywee_get_sleep_time_data(void);
+void cywee_get_sleep_time_data(SLEEP_T *sleep_data);
#ifdef __cplusplus
#if __cplusplus
+++ /dev/null
-#===============================================================================
-# @brief cmake file
-# Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved.
-#===============================================================================
-
-set(COMPONENT_NAME "cywee_hal")
-
-set(PUBLIC_HEADER
-${CMAKE_CURRENT_SOURCE_DIR}
-)
-
-set(SOURCES
-${CMAKE_CURRENT_SOURCE_DIR}/cywee_hal.c
-)
-
-set(COMPONENT_PUBLIC_CCFLAGS
-)
-
-set(COMPONENT_CCFLAGS
-
-)
-
-set(WHOLE_LINK
- true
-)
-
-set(MAIN_COMPONENT
- false
-)
-
-set(PUBLIC_DEFINES
-)
-
-set(PRIVATE_DEFINES
-)
-
-build_component()
+++ /dev/null
-/*
- * @Author: penglei 1624952103@qq.com
- * @Date: 2024-04-08 14:53:31
- * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-05-20 16:53:48
- * @FilePath: /FD230/code/sdk/drivers/peripheral/cywee/service/cywee_hal.c
- * @Description:
- *
- * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
- */
-
-#include <stdio.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdlib.h>
-
-#include "cywee_hal.h"
-
-#include "custom_utils.h"
-
-#ifdef CYWEE_DML
-#include "cywee_dml.h"
-#endif
-
-// cywee_msg_callback_t g_cywee_send_msg_toUI = NULL;
-
-// uint32_t cywee_register_msg_callback(cywee_msg_callback_t cywee_func)
-// {
-// g_cywee_send_msg_toUI = cywee_func;
-// return 0;
-// }
-
-// cywee_msg_callback_t cywee_get_send_msg_callback_func(void)
-// {
-// return g_cywee_send_msg_toUI;
-// }
-
-void cywee_start(void)
-{
-#ifdef CYWEE_DML
- cywee_main_dml();
-#endif
-}
-
-void cywee_stop(void)
-{
-#ifdef CYWEE_DML
- cywee_sensor_stop();
-#endif
-}
-
-void cywee_int_handler(void)
-{
-#ifdef CYWEE_DML
- cywee_dml_int_handler();
-#endif
-}
-
-act_result_t cywee_get_act_data(void)
-{
- act_result_t data = {0};
-#ifdef CYWEE_DML
- data = cywee_dml_get_act_data();
-#endif
- return data;
-}
-act_ext_result_t cywee_get_act_ext_data(void)
-{
- act_ext_result_t data = {0};
-#ifdef CYWEE_DML
- data = cywee_dml_get_act_ext_data();
-#endif
- return data;
-}
-
-void cywee_activity_mode_change(int mode)
-{
-#ifdef CYWEE_DML
- cywee_dml_activity_mode_change(mode);
-#endif
-}
-
-void cywee_inactivity_mode_change(int mode)
-{
-#ifdef CYWEE_DML
- cywee_dml_inactivity_mode_change(mode);
-#endif
-}
-
-void cywee_set_activity_mode_setstatus(int mode)
-{
-#ifdef CYWEE_DML
- cywee_dml_set_activity_mode_setstatus(mode);
-#endif
-}
-
-void cywee_get_gsensor_data(uint8_t cnt,gsenson_t *data)
-{
-#ifdef CYWEE_DML
- cywee_dml_get_gsensor_data(cnt,data);
-#endif
-}
-
-void cywee_wearstatus_update(int wearstatus)
-{
-#ifdef CYWEE_DML
-
- cywee_dml_wearstatus_update(wearstatus);
-
- do_custom_fileoperate_service_check_msg(
- CUSTOM_FILEOPERATE_MSG_TYPE_WEAR_DATA_SAVE, NULL, 0);
-#endif
-}
-
-void cywee_oncharging_update(int oncharging_status)
-{
-#ifdef CYWEE_DML
- cywee_dml_oncharging_update(oncharging_status);
-#endif
-}
-
-void cywee_time_sync(void)
-{
-#ifdef CYWEE_DML
- cywee_dml_time_sync();
-#endif
-}
-
-void cywee_reset_daily_data(void)
-{
-#ifdef CYWEE_DML
- cywee_dml_reset_daily_data();
-#endif
-}
-
-void cywee_hand_updown_switch(int cmd)
-{
-#ifdef CYWEE_DML
- cywee_dml_hand_updown_switch(cmd);
-#endif
-}
-
-void cywee_get_sleep_data(int cmd)
-{
-#ifdef CYWEE_DML
- cywee_dml_get_sleep_data(cmd);
-#endif
-}
-
-void cywee_ar_alert_switch(int cmd)
-{
-#ifdef CYWEE_DML
- cywee_dml_ar_alert_switch(cmd);
-#endif
-}
-
-void cywee_check_acc(void)
-{
-#ifdef CYWEE_DML
- cywee_dml_check_acc();
-#endif
-}
-
-void cywee_set_log_switch(int cmd)
-{
-#ifdef CYWEE_DML
- cywee_dml_set_log_switch(cmd);
-#endif
-}
-
-uint8_t cywee_get_static_state(void)
-{
-#ifdef CYWEE_DML
- return cywee_dml_get_static_state();
-#endif
- return 0;
-}
-
-void cywee_set_sedentary_switch(int cmd)
-{
-#ifdef CYWEE_DML
- cywee_dml_set_sedentary_switch(cmd);
-#endif
-}
-
-void cywee_set_sedentary_interval(int interval)
-{
-#ifdef CYWEE_DML
- cywee_dml_set_sedentary_interval(interval);
-#endif
-}
-
-void cywee_get_version(char *databuf,uint8_t len)
-{
-#ifdef CYWEE_DML
- cywee_dml_get_version(databuf,len);
-#endif
-}
-
-void cywee_get_chipinfo(char *databuf,uint8_t len)
-{
-#ifdef CYWEE_DML
- cywee_dml_get_chipinfo(databuf,len);
-#endif
-}
-
-uint8_t cywee_get_active_state(void)
-{
-#ifdef CYWEE_DML
- return cywee_dml_get_active_state();
-#endif
- return 0;
-}
-
-void cywee_restart_acc(void)
-{
-#ifdef CYWEE_DML
- cywee_dml_restart_acc();
-#endif
-}
-
-void cywee_custom_save_sleep_data(void)
-{
-#ifdef CYWEE_DML
- cywee_dml_save_sleep_data();
-#endif
-}
-
-void cywee_custom_save_nap_data(void)
-{
-#ifdef CYWEE_DML
- cywee_dml_save_nap_data();
-#endif
-}
-
-void cywee_reset_history_daily_data(void)
-{
-#ifdef CYWEE_DML
- cywee_dml_reset_history_daily_data();
-#endif
-}
-
-void cywee_set_user_info(void)
-{
-#ifdef CYWEE_DML
- cywee_dml_set_user_info();
-#endif
-}
-
-void cywee_set_stand_falg(void)
-{
-#ifdef CYWEE_DML
- cywee_dml_set_stand_falg();
-#endif
-}
-
-uint8_t cywee_get_stand_falg(void)
-{
-#ifdef CYWEE_DML
- return cywee_dml_get_stand_falg();
-#endif
- return 0;
-}
-
-uint32_t cywee_get_sport_data(uint8_t type)
-{
- uint32_t data = 0;
-#ifdef CYWEE_DML
- data = cywee_dml_get_sport_data(type);
-#endif
- return data;
-}
-
-void cywee_set_sport_data(uint32_t data,uint8_t type)
-{
-#ifdef CYWEE_DML
- cywee_dml_set_sport_data(data,type);
-#endif
-}
-
-SLEEP_T cywee_get_sleep_time_data(void)
-{
- SLEEP_T data = {0};
-#ifdef CYWEE_DML
- data = cywee_dml_get_sleep_time_data();
-#endif
- return data;
-}
\ No newline at end of file
)
set(PUBLIC_DEFINES
- SUPPORT_CYWEE_SERVICE
SUPPORT_AT_CYWEE
)
case CYWEE_SERVICE_CMD_START_CHECK:
//cywee_service_running_stat = true;
- cywee_main_dml();
+ cywee_start();
//cywee_service_timer_start_check(CYWEE_CHECK_MS);
break;
do_cywee_service_check_msg(CYWEE_SERVICE_CMD_TIMER_CHECK, NULL);
}
+void cywee_hand_wake_switch(uint8_t cmd)
+{
+ if(!cmd)
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_CLOSE_HAND_UPDOWN,NULL);
+ else
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_OPEN_HAND_UPDOWN,NULL);
+}
+
// void cywee_service_service_resume(void)
// {
// PRINT("cywee_service_service resume!\r\n");
* @Author: penglei 1624952103@qq.com
* @Date: 2024-03-26 20:29:58
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-10-28 20:02:18
+ * @LastEditTime: 2025-07-11 14:44:49
* @FilePath: /FD230/code/sdk/drivers/peripheral/cywee/Inc/cywee_service.h
* @Description:
*
void do_cywee_service_check_msg(int cmd, int *data);
void cywee_int_callback(pin_t pin, uintptr_t param);
+void cywee_hand_wake_switch(uint8_t cmd);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
+/*
+ * @Author: penglei 1624952103@qq.com
+ * @Date: 2025-05-16 11:36:48
+ * @LastEditors: penglei 1624952103@qq.com
+ * @LastEditTime: 2025-07-11 14:23:20
+ * @FilePath: /FD230/code/sdk/zhihui/drivers/mag/hal/mag_hal.c
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
#include <stdint.h>
#include <stdbool.h>
* @Author: penglei 1624952103@qq.com
* @Date: 2024-06-07 11:18:26
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-05-16 14:25:27
+ * @LastEditTime: 2025-07-11 14:23:42
* @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.h
* @Description:
*
{
//TODO 设置磁力计检测是否存在标识
PRINT("MMC5603 not found!\r\n");
- // return ERRCODE_FAIL;
+ return ERRCODE_FAIL;
}
g_mag_sensor_exist = true;
* @Author: penglei 1624952103@qq.com
* @Date: 2024-03-13 15:08:38
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-05-16 18:45:57
+ * @LastEditTime: 2025-07-11 10:56:20
* @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c
* @Description:
*
#ifdef PPG_HX3695
#include "tyhx_hrs_custom.h"
#include "hx3695.h"
+#include "hx3695_factory_test.h"
#endif
+#ifdef PPG_PAH8009
+#include "pah800x_main.h"
+#endif
+
+#ifdef PPG_GH3X2X
+// #include "gh3x2x_afe_drv.h"
+#endif
+
+
#ifdef SUPPORT_CYWEE_SERVICE
#include "cywee_service.h"
#endif
+
// S_AGPIO_L26 心率复位 PPG reset
#define GPIO_PIN_PRG_RESET S_AGPIO_L26
// S_AGPIO_R0 PRG_LED_POWER ON 心率等电源控制脚
void ppg_power_on(void)
{
-#ifdef PPG_HX3695
+ // printf("ppg_power_on\n");
uapi_pin_set_mode(GPIO_PIN_PRG_RESET, (pin_mode_t)HAL_PIO_FUNC_GPIO);
uapi_gpio_set_dir(GPIO_PIN_PRG_RESET, GPIO_DIRECTION_OUTPUT);
uapi_gpio_set_val(GPIO_PIN_PRG_RESET, GPIO_LEVEL_HIGH);
uapi_gpio_set_dir(GPIO_PIN_PRG_LED_ON, GPIO_DIRECTION_OUTPUT);
uapi_gpio_set_val(GPIO_PIN_PRG_LED_ON, GPIO_LEVEL_HIGH);
LOS_Mdelay(50);
-#endif
}
void ppg_power_off(void)
{
-#ifdef PPG_HX3695
+ // printf("ppg_power_off\n");
uapi_pin_set_mode(GPIO_PIN_PRG_RESET, (pin_mode_t)HAL_PIO_FUNC_GPIO);
uapi_gpio_set_dir(GPIO_PIN_PRG_RESET, GPIO_DIRECTION_OUTPUT);
uapi_gpio_set_val(GPIO_PIN_PRG_RESET, GPIO_LEVEL_LOW);
uapi_gpio_set_dir(GPIO_PIN_PRG_LED_ON, GPIO_DIRECTION_OUTPUT);
uapi_gpio_set_val(GPIO_PIN_PRG_LED_ON, GPIO_LEVEL_LOW);
LOS_Mdelay(50);
-#endif
}
-/*获取心率值*/
+
uint8_t ppg_get_hrs(void)
{
uint8_t hrs = 0;
#endif
return hrs;
}
-/*获取spo2*/
+
uint8_t ppg_get_spo2(void)
{
uint8_t spo2 = 0;
#endif
return spo2;
}
-/*获取配置状态*/
+
uint8_t ppg_get_wear_status(void)
{
uint8_t wear_status = 0;
return wear_status;
}
-uint8_t ppg_get_chip_id(void)
+uint16_t ppg_get_chip_id(void)
{
- uint8_t chip_id = 0;
+ uint16_t chip_id = 0;
+ ppg_power_on();
#ifdef PPG_HX3695
chip_id = hx3695_chip_check();
+#elif defined PPG_PAH8009
+ chip_id = pah8009_get_chip_id();
+#elif defined PPG_GH3X2X
+ // chip_id = GH3X2X_AFE_GetChipId();
#endif
+ ppg_power_off();
return chip_id;
}
-void ppg_wear_timer_handler(void)
+void ppg_timer_handler(uint8_t mode)
{
- // printf("ppg_wear_timer_handler\n");
+ // printf("ppg_agc_timer_handler\n");
#ifdef PPG_HX3695
+ if(mode == AGC_TIMER_MODE)
+ agc_timeout_handler(NULL);
+ else if(mode == HRS_TIMER_MODE)
+ heart_rate_meas_timeout_handler(NULL);
+ else if(mode == WEAR_TIMER_MODE)
wear_mode_timeout_handler(NULL);
+#elif defined PPG_PAH8009
+ pah8009_timer_handler();
#endif
}
-void ppg_hrs_timer_handler(void)
+
+void ppg_int_handler(void)
{
- // printf("ppg_hrs_timer_handler\n");
-#ifdef PPG_HX3695
- heart_rate_meas_timeout_handler(NULL);
+#ifdef PPG_PAH8009
+ pah8009_int_handler();
+#elif defined PPG_PAH8009
+ hal_gh3x2x_afe_int_handler_call_back();
+ GH3X2X_AFE_ChipPro();
#endif
}
-void ppg_agc_timer_handler(void)
+void ppg_send_cmd_to_driver(char* mode, uint8_t enable)
{
- // printf("ppg_agc_timer_handler\n");
+ // printf("ppg_send_cmd_to_driver \n");
+ if(enable)
+ ppg_power_on();
#ifdef PPG_HX3695
- agc_timeout_handler(NULL);
+ hx3695_control(mode,enable);
+#elif defined PPG_PAH8009
+ pah8009_control(mode,enable);
+#elif defined PPG_GH3X2X
+ // gh3x2x_control(mode,enable);
#endif
+ if(!enable)
+ ppg_power_off();
}
-
-void ppg_send_cmd_to_driver(char* mode, uint8_t enable)
+void ppg_get_leaklight_data(uint32_t *ch0,uint32_t *ch1,uint32_t *ch2)
{
- // printf("ppg_send_cmd_to_driver \n");
#ifdef PPG_HX3695
- WORK_MODE_T md = NULL_MODE;
- if (strcmp(mode, "hrs") == 0) {
- md = HRS_MODE;
- } else if (strcmp(mode, "hrv") == 0) {
- md = HRV_MODE;
- } else if (strcmp(mode, "spo2") == 0) {
- md = SPO2_MODE;
- } else if (strcmp(mode, "leaklight") == 0) {
- md = FT_LEAK_LIGHT_MODE;
- } else if (strcmp(mode, "graycard") == 0) {
- md = FT_GRAY_CARD_MODE;
- } else if (strcmp(mode, "ledoff") == 0) {
- 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;
- }
-
-
- if (enable == 1 || md == FT_LED_OFF_MODE) {
- // ppg_service_running_stat = true;
- uapi_pm_control(PM_APP_WAKE_NEEDED);
- ppg_power_on();
- //custom_i2c_reset();
- hx3695_init(md);
- } else {
-
- // ppg_service_running_stat = false;
- 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();
- // PRINT("uapi_dev_runtime_get_sleep_monitoring_status : %d \n",uapi_dev_runtime_get_sleep_monitoring_status());
- // PRINT("uapi_dev_runtime_get_hrs_passivity_flag : %d \n",uapi_dev_runtime_get_hrs_passivity_flag());
- if(uapi_dev_runtime_get_sleep_monitoring_status() && uapi_dev_runtime_get_hrs_passivity_flag())//处于睡眠监测 且在心率周期检测期间 上报活体佩戴
- {
- hx3695_wearstatus_update();
- uapi_dev_runtime_set_hrs_passivity(0);//清除被动检测runtime
- }
-#endif
- }else if(md == HRV_MODE)
- {
-#ifdef HRV_ALG_LIB
- hx3695_hrv_disable();
-#endif
- }else if(md == SPO2_MODE)
- {
-#ifdef SPO2_ALG_LIB
- hx3695_spo2_disable();
+ hx3695_get_factory_data(ch0,ch1,ch2);
+#elif defined PPG_VC9202
+ vc9202_get_leaklight_data(ch0,ch1,ch2);
+#elif defined PPG_PAH8009
+ pah8009_get_leaklight_data(ch0,ch1,ch2);
#endif
- }
- else{
-#ifdef HRS_ALG_LIB
- hx3695_hrs_disable();
-#endif
- }
- uapi_pm_control(PM_APP_WAKE_NONEED);
- ppg_power_off();
- }
+}
+
+uint32_t ppg_get_factory_data(void)
+{
+ uint32_t data = 0;
+#ifdef PPG_PAH8009
+ data = pah8009_get_factory_data();
+#elif defined PPG_HX3695
+
#endif
-}
\ No newline at end of file
+ return data;
+}
* @Author: penglei 1624952103@qq.com
* @Date: 2024-06-07 11:18:26
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-05-16 10:53:11
- * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.h
+ * @LastEditTime: 2025-07-09 16:12:34
+ * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/ppg/ppg_hal.h
* @Description:
*
* Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
#endif /* __cplusplus */
#include "stdint.h"
-#include "tyhx_hrs_custom.h"
+
#define AGC_TIMER_MODE 0
#define HRS_TIMER_MODE 1
#define WEAR_TIMER_MODE 2
#ifdef PPG_HX3695
-#define PPG_CHIP_ID 0X65
+#define PPG_CHIP_ID 0x65
+#elif defined PPG_PAH8009
+#define PPG_CHIP_ID 0x8008
+#elif defined PPG_GH3X2X
+#define PPG_CHIP_ID 0x3
#else
#define PPG_CHIP_ID 0
#endif
typedef uint32_t PPG_CMD_TYPE_T ;
+
void ppg_send_cmd_to_driver(char* mode, uint8_t enable);
-// void ppg_timer_handler(uint8_t mode);
-void ppg_agc_timer_handler(void);
-void ppg_wear_timer_handler(void);
-void ppg_hrs_timer_handler(void);
-uint8_t ppg_get_chip_id(void);
+void ppg_timer_handler(uint8_t mode);
+uint16_t ppg_get_chip_id(void);
uint8_t ppg_get_hrs(void);
uint8_t ppg_get_spo2(void);
uint8_t ppg_get_wear_status(void);
-
void ppg_wear_status_update(uint8_t status);
-
void ppg_power_on(void);
void ppg_power_off(void);
+void ppg_int_handler(void);
+void ppg_get_leaklight_data(uint32_t *ch0,uint32_t *ch1,uint32_t *ch2);
+uint32_t ppg_get_factory_data(void);
#ifdef __cplusplus
#if __cplusplus
# @brief cmake file
# Copyright (c) @CompanyNameMagicTag 2022-2023. All rights reserved.
#===============================================================================
-set(COMPONENT_NAME "ppg_sensor")
+set(COMPONENT_NAME "ppg_sensor_hx3695")
if("PPG_HX3695" IN_LIST DEFINES)
set(SOURCES ${SOURCES}
}\r
}\r
\r
- printf(" hx3695 chip_id: 0x%x \r\n", chip_id);\r
+ printf("hx3695 chip id: 0x%x \r\n", chip_id);\r
\r
return chip_id;\r
}\r
\r
if(hrsresult.wearstatus == MSG_HRS_WEAR)\r
{\r
- if(hrsresult.hr_living == MSG_LIVING_TRUE)\r
- {\r
- wear_status = 1;\r
- if(hrsresult.lastesthrs > 30 && hrsresult.lastesthrs < 220)\r
- get_avg_hrs(hrsresult.lastesthrs);\r
- }\r
- else\r
- {\r
- wear_status = 0;\r
- }\r
+ wear_status = 1;\r
+ if(hrsresult.lastesthrs > 30 && hrsresult.lastesthrs < 220)\r
+ get_avg_hrs(hrsresult.lastesthrs);\r
}\r
- else\r
+ else if(hrsresult.wearstatus == MSG_HRS_NO_WEAR || hrsresult.hr_living == MSG_LIVING_FAIL)\r
{\r
hrsresult.wearstatus = MSG_HRS_NO_WEAR;\r
hrsresult.lastesthrs = 0;\r
\r
\r
// hx3695_msg_callback_t func = hx3695_get_send_msg_callback_func();\r
+ \r
// if(func != NULL)\r
// {\r
// if(his_wear == hrsresult.wearstatus)\r
}\r
}\r
\r
+ // PRINT("hrsresult.wearstatus: %d, hr_living: %d, hr_result:%d \r\n",hrsresult.wearstatus,hrsresult.hr_living,hrsresult.lastesthrs);\r
\r
- //PRINT("hx3695 data_cnt: %d, hr_living: %d, hr_living_qu: %d, hr_living_std: %d, hr_result:%d \r\n",\r
- //alg_results.data_cnt, hrsresult.hr_living, hrsresult.hr_living_qu, hrsresult.hr_living_std, hrsresult.lastesthrs);\r
+ PRINT("hx3695 data_cnt: %d, hr_living: %d, hr_living_qu: %d, hr_living_std: %d, hr_result:%d \r\n",\r
+ alg_results.data_cnt, hrsresult.hr_living, hrsresult.hr_living_qu, hrsresult.hr_living_std, hrsresult.lastesthrs);\r
\r
if(hrs_wear_status == MSG_HRS_WEAR && hrsresult.hr_living == MSG_LIVING_TRUE)\r
{\r
}\r
#endif\r
\r
-#endif //CHIP_HX3695
\ No newline at end of file
+void hx3695_control(char *mode,uint8_t enable)\r
+{\r
+ WORK_MODE_T md = NULL_MODE;\r
+ if (strcmp(mode, "hrs") == 0) {\r
+ md = HRS_MODE;\r
+ } else if (strcmp(mode, "hrv") == 0) {\r
+ md = HRV_MODE;\r
+ } else if (strcmp(mode, "spo2") == 0) {\r
+ md = SPO2_MODE;\r
+ } else if (strcmp(mode, "leaklight") == 0) {\r
+ md = FT_LEAK_LIGHT_MODE;\r
+ } else if (strcmp(mode, "graycard") == 0) {\r
+ md = FT_GRAY_CARD_MODE;\r
+ } else if (strcmp(mode, "ledoff") == 0) {\r
+ md = FT_LED_OFF_MODE;\r
+ } else if (strcmp(mode, "wear") == 0) {\r
+ md = WEAR_MODE;\r
+ } else if (strcmp(mode, "single") == 0) {\r
+ md = FT_SINGLE_CHECK_MODE;\r
+ } \r
+\r
+\r
+ if (enable == 1 || md == FT_LED_OFF_MODE) {\r
+ hx3695_init(md);\r
+ } else {\r
+ if(md == HRS_MODE|| md == FT_LEAK_LIGHT_MODE || md == FT_GRAY_CARD_MODE || md == WEAR_MODE || md == FT_SINGLE_CHECK_MODE)\r
+ {\r
+#ifdef HRS_ALG_LIB \r
+ hx3695_hrs_disable();\r
+ // PRINT("uapi_dev_runtime_get_sleep_monitoring_status : %d \n",uapi_dev_runtime_get_sleep_monitoring_status());\r
+ // PRINT("uapi_dev_runtime_get_hrs_passivity_flag : %d \n",uapi_dev_runtime_get_hrs_passivity_flag());\r
+ if(uapi_dev_runtime_get_sleep_monitoring_status() && uapi_dev_runtime_get_hrs_passivity_flag())//处于睡眠监测 且在心率周期检测期间 上报活体佩戴 \r
+ {\r
+ hx3695_wearstatus_update(); \r
+ uapi_dev_runtime_set_hrs_passivity(0);//清除被动检测runtime \r
+ }\r
+#endif\r
+ }else if(md == HRV_MODE)\r
+ {\r
+#ifdef HRV_ALG_LIB\r
+ hx3695_hrv_disable();\r
+#endif\r
+ }else if(md == SPO2_MODE)\r
+ {\r
+#ifdef SPO2_ALG_LIB\r
+ hx3695_spo2_disable();\r
+#endif\r
+ }\r
+ else{\r
+#ifdef HRS_ALG_LIB \r
+ hx3695_hrs_disable();\r
+#endif\r
+ }\r
+ }\r
+}\r
+\r
+#endif //CHIP_HX3695\r
+\r
#include "hx3695.h"\r
#include "hx3695_factory_test.h"\r
\r
+static uint32_t factory_green = 0;\r
+static uint32_t factory_red = 0;\r
+static uint32_t factory_ir = 0;\r
+\r
void hx3695_factory_wear_mode_config(void)\r
{\r
uint16_t sample_rate = 10; /*config the data rate of chip alps2_fm ,uint is Hz*/\r
hx3695_factory_ft_leak_light_test_config();\r
hx3695_delay_ms(50);\r
ft_result = hx3695_factory_ft_leak_light_test_get_result();\r
- hrsresult.leak_green = ft_result.gr_data_final;\r
- hrsresult.leak_red = ft_result.red_data_final;\r
- hrsresult.leak_ir = ft_result.ir_data_final;\r
- TYHX_LOG("leak_green =%d\r\n",hrsresult.leak_green);\r
- TYHX_LOG("leak_red =%d\r\n",hrsresult.leak_red);\r
- TYHX_LOG("leak_ir =%d\r\n",hrsresult.leak_ir);\r
+ factory_green = ft_result.gr_data_final;\r
+ factory_red = ft_result.red_data_final;\r
+ factory_ir = ft_result.ir_data_final;\r
+ printf("factory_green : %d, factory_red:%d, factory_ir:%d\n",factory_green,factory_red,factory_ir);\r
break;\r
case GRAY_CARD_TEST:\r
hx3695_factory_ft_card_test_config();\r
hx3695_delay_ms(50);\r
ft_result = hx3695_factory_ft_card_test_get_result();\r
- hrsresult.card_green = ft_result.gr_data_final;\r
- hrsresult.card_red = ft_result.red_data_final;\r
- hrsresult.card_ir = ft_result.ir_data_final;\r
- TYHX_LOG("card_green =%d\r\n",hrsresult.card_green);\r
- TYHX_LOG("card_red =%d\r\n",hrsresult.card_red);\r
- TYHX_LOG("card_ir =%d\r\n",hrsresult.card_ir);\r
+ factory_green = ft_result.gr_data_final;\r
+ factory_red = ft_result.red_data_final;\r
+ factory_ir = ft_result.ir_data_final;\r
break;\r
case FT_INT_TEST:\r
hx3695_factory_ft_int_test_config();\r
\r
return ft_result;\r
}\r
+\r
+void hx3695_get_factory_data(uint32_t *green,uint32_t *red,uint32_t *ir)\r
+{\r
+ *green = factory_green;\r
+ *red = factory_red;\r
+ *ir = factory_ir;\r
+\r
+ factory_green = 0;\r
+ factory_red = 0;\r
+ factory_ir = 0;\r
+}
\ No newline at end of file
+/*\r
+ * @Author: penglei 1624952103@qq.com\r
+ * @Date: 2025-05-15 11:28:07\r
+ * @LastEditors: penglei 1624952103@qq.com\r
+ * @LastEditTime: 2025-07-11 11:03:23\r
+ * @FilePath: /FD230/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_factory_test.h\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
+ */\r
#ifndef _HX3695_FACTORY_TEST_H_\r
#define _HX3695_FACTORY_TEST_H_\r
\r
void hx3695_lab_test(uint32_t test_mode);\r
void hx3695_lab_test_read(void);\r
\r
+void hx3695_get_factory_data(uint32_t *green,uint32_t *red,uint32_t *ir);\r
+\r
\r
#endif // _HX3695_FACTORY_TEST_H_\r
\r
static void timer40_func(void)
{
#ifdef SUPPORT_PPG_SERVICE
- send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_PPG_40TIMER_CALLBACK);
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_PPG_AGC_TIMER_CALLBACK);
#endif
// agc_timeout_handler(NULL);
}
static void timer320_func(void)
{
#ifdef SUPPORT_PPG_SERVICE
- send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_PPG_320TIMER_CALLBACK);
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_PPG_HRS_TIMER_CALLBACK);
#endif
// heart_rate_meas_timeout_handler(NULL);
}
static void timer5000_func(void)
{
#ifdef SUPPORT_PPG_SERVICE
- send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_WEAR_MODE_5000TIMER_CALLBACK);
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_WEAR_MODE_TIMER_CALLBACK);
#endif
// heart_rate_meas_timeout_handler(NULL);
}
ppg_service_running_stat = false;
}
-uint32_t ppg_suspend(void)
-{
- return custom_i2c_suspend();
-}
-uint32_t ppg_resume(void)
-{
- return custom_i2c_resume();
-}
-
-
errcode_t send_ppg_cmd_msg(int cmd)
{
errcode_t ret;
}
char* cmd = "hrs";
int enable = 1;
- if (mail == PPG_SERVICE_CMD_TYPE_DO_PPG_320TIMER_CALLBACK){
+ if (mail == PPG_SERVICE_CMD_TYPE_DO_PPG_HRS_TIMER_CALLBACK){
// #ifdef PPG_HX3695
// heart_rate_meas_timeout_handler(NULL);
// #endif
- ppg_hrs_timer_handler();
+ ppg_timer_handler(HRS_TIMER_MODE);
continue;
- }else if (mail == PPG_SERVICE_CMD_TYPE_DO_PPG_40TIMER_CALLBACK){
+ }else if (mail == PPG_SERVICE_CMD_TYPE_DO_PPG_AGC_TIMER_CALLBACK){
// #ifdef PPG_HX3695
// agc_timeout_handler(NULL);
// #endif
- ppg_agc_timer_handler();
+ ppg_timer_handler(AGC_TIMER_MODE);
continue;
- }else if(mail == PPG_SERVICE_CMD_TYPE_DO_WEAR_MODE_5000TIMER_CALLBACK){
+ }else if(mail == PPG_SERVICE_CMD_TYPE_DO_WEAR_MODE_TIMER_CALLBACK){
// #ifdef PPG_HX3695
// wear_mode_timeout_handler(NULL);
// #endif
- ppg_wear_timer_handler();
+ ppg_timer_handler(WEAR_TIMER_MODE);
continue;
}else if (mail == PPG_SERVICE_CMD_TYPE_DO_PPG_TEST){
//do_cywee_service_check_msg(CYWEE_SERVICE_CMD_OPEN_GET_ACC,NULL);
{
PRINT("uapi_ppg_service_init !\r\n");
- ppg_power_on();
-
if (ppg_get_chip_id() != PPG_CHIP_ID)
{
//TODO 没找到3695,退出线程
PRINT("ppg not exist!\r\n");
- ppg_power_off();
return ERRCODE_FAIL;
}
- ppg_power_off();
ppg_sensor_exist = true;
* @Author: penglei 1624952103@qq.com
* @Date: 2024-03-27 09:07:00
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-01-06 16:57:23
+ * @LastEditTime: 2025-07-11 10:59:44
* @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/service/ppg_service.h
* @Description:
*
#include "errcode.h"
#include "platform_core.h"
-#define PPG_SERVICE_CMD_TYPE_DO_WEAR_MODE_5000TIMER_CALLBACK 0x09
-#define PPG_SERVICE_CMD_TYPE_DO_PPG_40TIMER_CALLBACK 0x0A
-#define PPG_SERVICE_CMD_TYPE_DO_PPG_320TIMER_CALLBACK 0x10
+#define PPG_SERVICE_CMD_TYPE_INT_HANDLER 0x08
+#define PPG_SERVICE_CMD_TYPE_DO_WEAR_MODE_TIMER_CALLBACK 0x09
+#define PPG_SERVICE_CMD_TYPE_DO_PPG_AGC_TIMER_CALLBACK 0x0A
+#define PPG_SERVICE_CMD_TYPE_DO_PPG_HRS_TIMER_CALLBACK 0x10
#define PPG_SERVICE_CMD_TYPE_DO_PPG_TEST 0x11
#define PPG_SERVICE_CMD_TYPE_DO_HRV_TEST 0x12
#define PPG_SERVICE_CMD_TYPE_DO_SPO2_TEST 0x13
#define PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST 0x23
#define PPG_SERVICE_CMD_TYPE_OPEN_HRS_BLE 0x24
#define PPG_SERVICE_CMD_TYPE_CLOSE_HRS_BLE 0x25
-#define PPG_SERVICE_CMD_TYPE_INT_HANDLER 0x26
#define PPG_SERVICE_CMD_TYPE_FPC_TEST 0x27
#define PPG_SERVICE_CMD_TYPE_FACTORY_TEST 0x28
mmi_flip_wrist_switch_set(value);
if(true == value)
{
- uapi_take_to_wake(1);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(1); // 关闭抬腕亮屏,和息屏
+#endif
}
else
{
- uapi_take_to_wake(0);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(0); // 关闭抬腕亮屏,和息屏
+#endif
}
SendMsgToUIService(UI_UPDATE_RAISETOBRIGHTNESS,0,nullptr,0);
mmi_flip_wrist_switch_set(value);
if(true == value)
{
- uapi_take_to_wake(1);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(1); // 关闭抬腕亮屏,和息屏
+#endif
}
else
{
- uapi_take_to_wake(0);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(0); // 关闭抬腕亮屏,和息屏
+#endif
}
return;
* @Author: penglei 1624952103@qq.com\r
* @Date: 2024-06-17 14:31:08\r
* @LastEditors: penglei 1624952103@qq.com\r
- * @LastEditTime: 2025-05-20 11:31:30\r
+ * @LastEditTime: 2025-07-14 15:28:33\r
* @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
* @Description: \r
* \r
#include "app_common_api.h"\r
#include "lcd_private.h"\r
#include "app_at_process.h"\r
-#include "cywee_hal.h"\r
\r
#ifdef SUPPORT_PPG_SERVICE\r
#include "ppg_service.h"\r
#include "battery_service.h"\r
#ifdef SUPPORT_CYWEE_SERVICE\r
#include "cywee_service.h"\r
+#include "cywee_hal.h"\r
#endif\r
#include "broadcast_feature.h"\r
#ifdef SUPPORT_TCPIP\r
return;\r
}\r
uapi_get_timestampe_ss(¤t_time);\r
- mmc5603_getdata(&fAzimuth);\r
+ // mmc5603_getdata(&fAzimuth);\r
+ fAzimuth = mag_get_fAzimuth();\r
if(fAzimuth < 0)\r
{\r
aging_t.mag_error++;\r
if(id != 0x44)\r
send_data[1] |= 1 << 1;\r
\r
- unsigned char mmc_id;\r
- mmc5603_getid(&mmc_id);\r
+ uint8_t mmc_id;\r
+#ifdef SUPPORT_MAG_SERVICE\r
+ mmc_id = mag_get_chip_id();\r
+#endif\r
if(mmc_id != 0x10)\r
send_data[1] |= 2 << 4;\r
\r
if(tp_id != 0x6456)\r
send_data[1] |= 1 << 4;\r
\r
- uapi_ppg_get_id(&id);\r
+ // uapi_ppg_get_id(&id);\r
if(id != 0x65)\r
send_data[1] |= 1 << 3;\r
\r
{\r
//获取原始数据\r
int16_t x,y;\r
- get_tp_info(&x,&y);\r
+ // get_tp_info(&x,&y);\r
uint8_t databuf[5] = {0};\r
\r
databuf[1] = (uint8_t)((x & 0XFF00) >> 8);\r
if(testitem == 0x01)\r
{\r
//获取 ppg_id\r
- uint8_t ppg_id;\r
- uapi_ppg_get_id(&ppg_id);\r
+ uint16_t ppg_id;\r
+#ifdef SUPPORT_PPG_SERVICE\r
+ ppg_id = ppg_get_chip_id();\r
+#endif\r
PRINT("0x%x\n",ppg_id);\r
factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
0x01,\r
&ppg_id,\r
- 1);\r
+ 2);\r
\r
} else if(testitem == 0x02)\r
{\r
//关闭所有LED\r
uint8_t send_data = 0x00;\r
- #ifdef SUPPORT_PPG_SERVICE\r
+#ifdef SUPPORT_PPG_SERVICE\r
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_LED_OFF_MODE_TEST);\r
- #endif\r
+#endif\r
factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
0x02,\r
float fAzimuth = 0;\r
do_mag_service_check_msg(MAG_SERVICE_CMD_START_CHECK);\r
LOS_Msleep(500);\r
- mmc5603_getdata(&fAzimuth);\r
+ // mmc5603_getdata(&fAzimuth);\r
+ fAzimuth = mag_get_fAzimuth();\r
do_mag_service_check_msg(MAG_SERVICE_CMD_STOP_CHECK);\r
uint8_t databuf[2] = {0};\r
\r
#include "custom_utils.h"
#include "custom_save_runtime.h"
-#ifdef FD230_650
+
#include "microtar.h"
-#include "mag_service.h"
-#include "ppg_service.h"
#include "broadcast_feature.h"
-#include "battery_service.h"
-#include "cywee_hal.h"
-#endif
#ifdef SUPPORT_A5133_SERVICE
#include "A5133main.h"
#include "service/a5133_service.h"
#ifdef FD230_COMPONENT
#include "bluetooth/include/BluetoothModelC.h"
#endif
-#ifdef PPG_VC9202
-#include "vc9202_user.h"
-#endif
+
#ifdef TPTYPE_CST86XX
#include "cst86xx_touch1.h"
#endif
#include "bleEvent.h"
#endif
+#ifdef SUPPORT_PPG_SERVICE
+#include "ppg_service.h"
+#include "ppg_hal.h"
+#endif
+
+#ifdef SUPPORT_BATTERY_SERVICE
+#include "battery_service.h"
+#endif
+
#ifdef SUPPORT_CYWEE_SERVICE
#include "cywee_hal.h"
#include "cywee_service.h"
#ifdef SUPORT_MAG_SERVICE
#include "mag_hal.h"
+#include "mag_service.h"
#endif
-
+#include "audio_base_type.h"
#include <sys/stat.h>
+#include "audio_service.h"
errcode_t uapi_create_osThread_custom(app_task_definition_t *task_cfg)
{
// cm_sync_all_config_to_disk();
//保存电量
- #ifdef FD230_650
+#ifdef SUPPORT_BATTERY_SERVICE
send_battery_svr_cmd_msg(BATTERY_CMD_SAVE_PERCENT);
- #endif
+#endif
//重启前要保存时间
return ERRCODE_SUCC;
}
+
+// int32_t StreamMgrSetTypeVolume(int32_t streamType, float typeVolume);
+
+// bool StreamMgrGetTypeVolume(int32_t streamType, float *typeVolume);
+
/*系统声音设置*/
-void uapi_systemVolumeSet(int32_t sounding)
+void uapi_systemVolumeSet(int32_t volume)
{
- #ifdef FD230_COMPONENT
- SystemVolumeSet(sounding);
- #endif
+ printf("uapi_systemVolume:%d\n",volume);
+ AudioServiceSetVolume(AUDIO_STREAM_MUSIC, volume);
}
/*系统声音获取*/
-int uapi_systemVolumeGet(void)
+int32_t uapi_systemVolumeGet(void)
{
- return SystemVolumeGet();
+ // return SystemVolumeGet();
+ return AudioServiceGetVolume(AUDIO_STREAM_MUSIC);
}
+
//通话音量设置
-void uapi_callVolumeSet(int32_t sounding)
+void uapi_callVolumeSet(int32_t volume)
{
- #ifdef FD230_COMPONENT
- CallVolumeSet(sounding);
- #endif
+ printf("uapi_callVolumeSet:%d\n",volume);
+ AudioServiceSetVolume(AUDIO_STREAM_VOICE_CALL_BT_SCO, volume);
+ AudioServiceSetVolume(AUDIO_STREAM_VOICE_CALL_VOLTE, volume);
}
//通话音量获取
-int uapi_callVolumeGet(void)
+int32_t uapi_callVolumeGet(void)
{
- return CallVolumeGet();
+ return AudioServiceGetVolume(AUDIO_STREAM_VOICE_CALL_VOLTE);
}
//设置4G能力开关是否开启
void *tcp_thread_id = NULL;
if(isopen)
{
- #ifdef SUPPORT_CAT1_SERVICE
+ if(uapi_dev_runtime_get_cat1_powerstat())
+ {
+ return;
+ }
+
+ uint8_t cnt = pm_veto_get_id_cnt(PM_ID_CAT1);
+ if (cnt == 0)
+ {
+ uapi_pm_add_sleep_veto(PM_ID_CAT1);
+ }
+
+ // uapi_save_runtime_log(RUNTIME_LOG_CAT1_4G_OPEN);
power_on_cat1();
- #endif
// if(!uapi_dev_runtime_get_saveele_status())
{
uapi_dev_runtime_set_cat1_powerstat(1);
#ifdef SUPPORT_TCPIP
tcp_thread_id = tcp_get_thread_id();
- ret = uapi_resume_thread(tcp_thread_id);
- if(ret != ERRCODE_SUCC)
- PRINT("tcpip_thread_resume failed ret : %d \n",ret);
- else
- PRINT("tcpip_thread_resume succed\n");
+ if(tcp_thread_id != NULL)
+ {
+ ret = uapi_resume_thread(tcp_thread_id);
+ if(ret != ERRCODE_SUCC)
+ PRINT("tcpip_thread_resume failed ret : %d \n",ret);
+ else
+ PRINT("tcpip_thread_resume succed\n");
+ }
+
#endif
+
+ cnt = pm_veto_get_id_cnt(PM_ID_CAT1);
+ if (cnt == 1)
+ {
+ uapi_pm_remove_sleep_veto(PM_ID_CAT1);
+ }
}
else
{
- #ifdef SUPPORT_CAT1_SERVICE
+ if(!uapi_dev_runtime_get_cat1_powerstat())
+ {
+ return;
+ }
+ // uapi_save_runtime_log(RUNTIME_LOG_CAT1_4G_CLOSE);
power_off_cat1();
- #endif
// if(!uapi_dev_runtime_get_saveele_status())
{
uapi_dev_runtime_set_cat1_powerstat(0);
/*4G 开电有时有干扰进日志串口,因此关闭4G才开启日志串口*/
// uapi_custom_set_uart_rx_enable_flag(true);
+ #ifdef SUPPORT_TCPIP
+ tcp_thread_id = tcp_get_thread_id();
+ if(tcp_thread_id != NULL)
+ {
+ ret = uapi_suspend_thread(tcp_thread_id);
+ if(ret != ERRCODE_SUCC)
+ PRINT("tcpip_thread_suspend failed ret : %d \n",ret);
+ else
+ PRINT("tcpip_thread_suspend succed\n");
+ }
+ #endif
+
uint8_t cnt = pm_veto_get_id_cnt(PM_ID_CAT1);
if (cnt == 1)
{
uapi_pm_remove_sleep_veto(PM_ID_CAT1);
}
- #ifdef SUPPORT_TCPIP
- tcp_thread_id = tcp_get_thread_id();
- ret = uapi_suspend_thread(tcp_thread_id);
- if(ret != ERRCODE_SUCC)
- PRINT("tcpip_thread_suspend failed ret : %d \n",ret);
- else
- PRINT("tcpip_thread_suspend succed\n");
- #endif
}
}
return ERRCODE_SUCC;
}
-void uapi_take_to_wake(int cmd)
-{
- #ifdef FD230_650
- if(cmd == 1)
- do_cywee_service_check_msg(CYWEE_SERVICE_CMD_OPEN_HAND_UPDOWN,NULL);
- else
- do_cywee_service_check_msg(CYWEE_SERVICE_CMD_CLOSE_HAND_UPDOWN,NULL);
- #endif
-}
#include "lcd_common.h"
void lcd_getid(uint32_t *id)
{
+ if(id == NULL)
+ return;
+
lcd_drv_common *lcd_drv_comm_api = NULL;
lcd_drv_cfg *lcd_cfg = NULL;
}
else
{
- lcd_cfg = lcd_drv_comm_api->get_lcd_config();
- if (lcd_cfg == NULL) {
- PRINT("lcd_cfg is null.\r\n");
- }else
- {
- PRINT("LCD ID : 0x%x\r\n",(uint32_t)lcd_cfg->lcd_id);
- *id = (uint32_t)lcd_cfg->lcd_id;
- }
- }
-}
-#ifdef TPTYPE_FT6X46
-#include "ft6x46_ctrl.h"
-#include "ft6x46_touch1.h"
-#define FTS_REG_CHIP_ID 0xA3
-#define FTS_REG_CHIP_ID2 0x9F
-/*Max point numbers of touch trace*/
-#define MAX_POINTS_TOUCH_TRACE 1
-/*Length of touch information*/
-#define MAX_LEN_TOUCH_INFO (MAX_POINTS_TOUCH_TRACE * 6 + 2)
-#define FTS_MAX_POINTS_SUPPORT 10
-
-struct fts_ts_event {
- int x; /*x coordinate */
- int y; /*y coordinate */
- int p; /* pressure */
- int type; /* touch event flag: 0 -- down; 1-- up; 2 -- contact */
- int id; /*touch ID */
- int area; /*touch area*/
-};
-
-
-void get_tp_info(int16_t *x,int16_t *y)
-{
- uint8_t i = 0;
- uint8_t base = 0;
- uint8_t regaddr = 0x01;
- uint8_t buf[MAX_LEN_TOUCH_INFO];/*A maximum of two points are supported*/
-
- struct fts_ts_event events[FTS_MAX_POINTS_SUPPORT]; /* multi-touch */
- /*read touch information from reg0x01*/
- tp_ft6x46_i2c_data_read(regaddr, buf, MAX_LEN_TOUCH_INFO);
-
- memset(events, 0xFF, sizeof(struct fts_ts_event) * FTS_MAX_POINTS_SUPPORT);
-
- for (i = 0; i < MAX_POINTS_TOUCH_TRACE; i++)
- {
- base = 2 + i * 6;
-
- events[i].x = ((buf[base] & 0x0F) << 8) + buf[base + 1];
- events[i].y = ((buf[base + 2] & 0x0F) << 8) + buf[base + 3];
-
- *x = events[i].x;
- *y = events[i].y;
-
- PRINT("X : %d, y : %d \r\n",*x,*y);
+ lcd_drv_comm_api->get_chip_id(id);
+ PRINT("LCD ID : 0x%x\r\n",*id);
}
}
-#else
-void get_tp_info(int16_t *x,int16_t *y)
-{
-
-}
-#endif
-
-void touch_getid(uint16_t *id)
-{
-#ifdef TPTYPE_FT6X46
- ext_errno ret;
- uint8_t chip_id[2] = { 0 };
- /*get chip id*/
- ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID, &chip_id[0], 1);
- if (ret != EXT_ERR_SUCCESS) {
- PRINT("get ic information error1");
- } else {
- ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID2, &chip_id[1], 1);
- if (ret != EXT_ERR_SUCCESS) {
- PRINT("get ic information error2");
- } else
- {
- PRINT("TOUCH CHIP ID = 0x%02x%02x \r\n", chip_id[0], chip_id[1]);
- *id = (chip_id[0] & 0XFF) << 8 | (chip_id[1] & 0XFF);
- //sprintf(id,"0x%02x%02x", chip_id[0], chip_id[1]);
- }
- }
-#elif defined TPTYPE_CST86XX
- cst86xx_get_chip_id(id);
-
-#endif
-}
-
-void touch_getstate(void)
-{
- int32_t state;
- state = uapi_get_screen_state();
- PRINT("Screen On state : %d\r\n",state);
-}
-
-void mmc5603_getid(unsigned char *id)
-{
- #ifdef SUPORT_MAG_SERVICE
- *id = mag_get_chip_id();
- #endif
-}
-
-void mmc5603_getdata(float *fAzimuth)
-{
- *fAzimuth = mag_service_get_fAzimuth();
- PRINT("Azimuth : %f\n",*fAzimuth);
-}
-
-
#include "flash.h"
void flash_getid(uint32_t *id)
// get_current_time(&tv, &tm);
// }
-void uapi_ppg_get_id(uint8_t *chip_id)
-{
-#ifdef SUPPORT_PPG_SERVICE
- *chip_id = ppg_get_chip_id();
-#endif
-#ifdef PPG_VC9202
- uint8_t id = 0;
- vc9202_usr_get_chip_id(chip_id,&id);
-#endif
-}
#include "hal_i2c.h"
#include "i2c.h"
uint32_t custom_i2c_suspend(void)
{
i2c_save_reg(I2C_BUS_2);
+ i2c_save_reg(I2C_BUS_1);
#ifdef ENABLE_BN02
i2c_save_reg(I2C_BUS_0);
#endif
uint32_t custom_i2c_resume(void)
{
i2c_recovery_reg(I2C_BUS_2);
+ i2c_recovery_reg(I2C_BUS_1);
#ifdef ENABLE_BN02
i2c_recovery_reg(I2C_BUS_0);
#endif
uapi_dev_runtime_set_saveele_status(1);
//关闭抬腕亮屏
- uapi_take_to_wake(0);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(0); // 关闭抬腕亮屏,和息屏
+#endif
//亮度最低
uapi_setScreenBrightness(51);
//打开抬腕亮屏
if(mmi_flip_wrist_switch_get())
{
- uapi_take_to_wake(1);
+#ifdef SUPPORT_CYWEE_SERVICE
+ cywee_hand_wake_switch(1); // 关闭抬腕亮屏,和息屏
+#endif
}
//恢复亮度
unsigned char mmc_id = 0;
uint8_t cywee_id = 0;
- uapi_ppg_get_id(&ppg_id);
+ // uapi_ppg_get_id(&ppg_id);
if(ppg_id != 0x65)
return ERRCODE_FAIL;
PRINT("ppg_id[%x] \n",ppg_id);
LOS_Msleep(6000);
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);
#endif
- uapi_ppg_get_id(&ppg_id);
+ // uapi_ppg_get_id(&ppg_id);
//if(ft_result.gr_data_final < 10000 || ft_result.red_data_final < 10000 || ft_result.ir_data_final < 10000)
if(ppg_id != 0x65)
{
int32_t uapi_get_screen_state(void);
void uapi_systemVolumeSet(int32_t sounding);
-int uapi_systemVolumeGet(void);
+int32_t uapi_systemVolumeGet(void);
void uapi_callVolumeSet(int32_t sounding);
-int uapi_callVolumeGet(void);
+int32_t uapi_callVolumeGet(void);
// void uapi_vibrationModeSet(int value);
void uapi_set4GCapability(bool isopen);
//判断文件夹是否存在
bool uapi_create_dir(const char *path);
-// 使能翻腕亮灭屏功能接口
-// cmd: 1-active;other-deactive
-void uapi_take_to_wake(int cmd);
-
-
-//获取lcd id
-void lcd_getid(uint32_t *id);
-
-//获取TP ID
-void touch_getid(uint16_t *id);
-void get_tp_info(int16_t *x,int16_t *y);
-
-//获取触摸屏状态
-void touch_getstate(void);
-
-//获取MMC5063 ID
-void mmc5603_getid(unsigned char *id);
-void mmc5603_getdata(float *fAzimuth);
//flash整片擦除
void flash_getid(uint32_t *id);
void flash_erase(void);
-void get_gsensor_single(uint8_t *databuf);
-
-
void shutdown_reboot_prejobs(uint8_t type);
void start_shutdown_or_reboot(uint8_t type);
uint8_t is_doing_shutdown_or_reboot(void);
-
-
bool start_custom_ble_service(void);
bool stop_custom_ble_service(void);
void uapi_cywee_save_mac_key(const uint8_t *key_data,uint16_t len);
uint8_t* uapi_cywee_get_mac_key(void);
void uapi_get_sleep_date_on_log(char *time);
-void uapi_ppg_get_id(uint8_t *chip_id);
+
int32_t uapi_microhone_switch(bool isopen);
*/
void BtInitSpp(void);
-
+void uapi_poweroff_device(void);
+void uapi_reboot_device(void);
void mcu_reset(void);
void mcu_poweroff(void);
UNUSED(strCommonCmd);
- //lcd_getid();
+ uint32_t id;
+ lcd_getid(&id);
return ERRCODE_SUCC;
}
UNUSED(strCommonCmd);
- touch_getstate();
+ // touch_getstate();
return ERRCODE_SUCC;
}
UNUSED(strCommonCmd);
- get_tp_info(&x,&y);
+ // get_tp_info(&x,&y);
return ERRCODE_SUCC;
}
UNUSED(strCommonCmd);
uint8_t chip_id = 0;
- uapi_ppg_get_id(&chip_id);
+ // uapi_ppg_get_id(&chip_id);
wstp_print("ppg_id[%x]\n",chip_id);
return ERRCODE_SUCC;
}
UNUSED(strCommonCmd);
unsigned char id;
- mmc5603_getid(&id);
+#ifdef SUPPORT_MAG_SERVICE
+ id = mag_get_chip_id();
+#endif
wstp_print("mmc5603 id : 0x%X \r\n",id);
return ERRCODE_SUCC;
}