From 4e2298524adedd7443d9421d2dd2df6fbcd9782c Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Mon, 19 May 2025 10:30:32 +0800 Subject: [PATCH] =?utf8?q?=E5=90=88=E5=85=A5ppg,mag,cywee=20=E5=BA=95?= =?utf8?q?=E5=B1=82=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 19 +- .../brandy/brandy_standard/board_init.c | 6 +- .../brandy/brandy_standard/service_init.c | 12 +- .../brandy/brandy_standard/thread_pri_init.c | 42 ++-- .../nativeui/activity/src/ActivityModel.cpp | 2 +- .../bloodoxygen/src/BloodResultPresenter.cpp | 2 +- .../nativeui/compass/src/CompassModel.cpp | 32 ++- .../heart_blood/CheckAbnormalPresenter.cpp | 2 +- .../heart_blood/CheckInvalidPresenter.cpp | 2 +- .../nativeui/heartrate/src/HeartModel.cpp | 2 +- .../heartrate/src/HeartResultPresenter.cpp | 2 +- .../nativeui/main/src/dial/DialLabelView.cpp | 2 +- .../src/MotionRecognitionPresenter.cpp | 6 +- .../nativeui/saveele/src/SaveBatPresenter.cpp | 12 +- .../nativeui/sleep/src/SleepModel.cpp | 10 +- .../broadcast/include/broadcast_feature.h | 2 +- .../broadcast/src/broadcast_implement.c | 2 +- .../config/target_config/brandy/config.py | 54 +++-- .../brandy_evb/board_config/board_fd230.h | 4 +- .../brandy_evb/board_config/board_lt22.h | 2 +- .../boards/brandy_evb/board_config/board_u8.h | 4 +- .../boards/brandy_evb/board_config/board_w9.h | 2 +- .../chips/brandy/porting/uart/uart_porting.c | 6 +- .../chips/brandy/exception/chip_system_time.c | 7 + .../chips/brandy/pm/pm_adapt/pm_control.c | 11 + .../chips/brandy/pm/pm_adapt/pm_control.h | 10 + .../chips/brandy/pm/pm_adapt/pm_core.c | 10 +- code/sdk/zhihui/UI/producttest/src/testbt.cpp | 22 +- .../drivers/charge/service/charge_service.c | 4 +- code/sdk/zhihui/drivers/cywee/CMakeLists.txt | 4 +- code/sdk/zhihui/drivers/cywee/Inc/cywee_hal.h | 2 +- .../drivers/cywee/service/cywee_service.c | 24 +-- code/sdk/zhihui/drivers/cywee/src/config.h | 13 -- code/sdk/zhihui/drivers/cywee/src/main_dml.c | 147 +++++++++++-- code/sdk/zhihui/drivers/mag/CMakeLists.txt | 73 +------ .../sdk/zhihui/drivers/mag/hal/CMakeLists.txt | 37 ++++ code/sdk/zhihui/drivers/mag/hal/mag_hal.c | 58 ++++++ code/sdk/zhihui/drivers/mag/hal/mag_hal.h | 39 ++++ .../zhihui/drivers/mag/mmc5603/CMakeLists.txt | 47 +++++ .../zhihui/drivers/mag/mmc5603/mmc5603_hal.h | 11 + .../zhihui/drivers/mag/service/CMakeLists.txt | 41 ++++ .../mmc5603_at_cmd.c => service/mag_at_cmd.c} | 45 ++-- .../mmc5603_at_cmd.h => service/mag_at_cmd.h} | 14 +- .../zhihui/drivers/mag/service/mag_service.c | 116 +++-------- .../zhihui/drivers/mag/service/mag_service.h | 9 +- code/sdk/zhihui/drivers/ppg/CMakeLists.txt | 3 +- .../drivers/ppg/gh3x2x/src/gh3x2x_hal.c | 6 +- .../sdk/zhihui/drivers/ppg/hal/CMakeLists.txt | 38 ++++ code/sdk/zhihui/drivers/ppg/hal/ppg_hal.c | 195 ++++++++++++++++++ code/sdk/zhihui/drivers/ppg/hal/ppg_hal.h | 55 +++++ .../zhihui/drivers/ppg/hx3695/CMakeLists.txt | 2 +- code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c | 184 ++++++++++------- code/sdk/zhihui/drivers/ppg/hx3695/hx3695.h | 6 +- .../drivers/ppg/hx3695/hx3695_check_touch.c | 2 + .../zhihui/drivers/ppg/hx3695/hx3695_hal.c | 6 +- .../drivers/ppg/hx3695/hx3695_hrs_custom.c | 29 --- .../zhihui/drivers/ppg/service/ppg_at_cmd.h | 4 +- .../drivers/ppg/service/ppg_service.cpp | 97 ++++----- .../drivers/ppg/vc9202/src/vc9202_hal.c | 10 +- .../drivers/ppg/vc921x/src/vc921x_hal.c | 6 +- .../rotary_encoder/hx3507/hx3507_at_cmd.h | 10 +- .../battery/service/battery_service.cpp | 88 ++++++++ .../ble_service/bleservice/bleService.c | 14 +- code/sdk/zhihui/utils/custom_cmd_service.c | 5 +- .../zhihui/utils/custom_fileoperate_service.c | 17 +- code/sdk/zhihui/utils/custom_utils.c | 46 ++++- code/sdk/zhihui/utils/custom_utils.h | 3 + code/sdk/zhihui/utils/custom_utils_at_cmd.c | 12 +- code/sdk/zhihui/utilscpp/custom_utilscpp.cpp | 2 +- .../brandy_evb/board_config/board_evb.h | 62 +++--- .../brandy_evb/board_config/board_evb.h | 64 +++--- 71 files changed, 1293 insertions(+), 646 deletions(-) delete mode 100644 code/sdk/zhihui/drivers/cywee/src/config.h create mode 100644 code/sdk/zhihui/drivers/mag/hal/CMakeLists.txt create mode 100644 code/sdk/zhihui/drivers/mag/hal/mag_hal.c create mode 100644 code/sdk/zhihui/drivers/mag/hal/mag_hal.h create mode 100644 code/sdk/zhihui/drivers/mag/mmc5603/CMakeLists.txt create mode 100644 code/sdk/zhihui/drivers/mag/service/CMakeLists.txt rename code/sdk/zhihui/drivers/mag/{mmc5603/mmc5603_at_cmd.c => service/mag_at_cmd.c} (51%) rename code/sdk/zhihui/drivers/mag/{mmc5603/mmc5603_at_cmd.h => service/mag_at_cmd.h} (50%) create mode 100644 code/sdk/zhihui/drivers/ppg/hal/CMakeLists.txt create mode 100644 code/sdk/zhihui/drivers/ppg/hal/ppg_hal.c create mode 100644 code/sdk/zhihui/drivers/ppg/hal/ppg_hal.h diff --git a/.vscode/settings.json b/.vscode/settings.json index 7918d6713..0b4941e1b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -83,6 +83,23 @@ "locale": "cpp", "optional": "cpp", "system_error": "cpp", - "vector": "cpp" + "vector": "cpp", + "ppg_service.h": "c", + "custom_utilscpp.h": "c", + "cywee_hal.h": "c", + "hx3695_hrs_agc.h": "c", + "hx3695_hal.h": "c", + "ppg_hal.h": "c", + "stdint.h": "c", + "__locale": "c", + "string": "c", + "string_view": "c", + "upg_definitions.h": "c", + "bleevent.h": "c", + "mag_hal.h": "c", + "cywee_service.h": "c", + "stdbool.h": "c", + "custom_runtime.h": "c", + "hx3695.h": "c" } } \ No newline at end of file diff --git a/code/sdk/application/brandy/brandy_standard/board_init.c b/code/sdk/application/brandy/brandy_standard/board_init.c index 90fa0f814..bcc551cce 100644 --- a/code/sdk/application/brandy/brandy_standard/board_init.c +++ b/code/sdk/application/brandy/brandy_standard/board_init.c @@ -229,9 +229,9 @@ void board_init(uint32_t flash_id, uint32_t flash_unique_id) if (need_enter_safemode() == true) { PRINT("entering SafeMode\r\n"); - #ifdef CUSTOM_UTILS - uapi_dev_runtime_set_safemode_flag(1); - #endif + // #ifdef CUSTOM_UTILS + // uapi_dev_runtime_set_safemode_flag(1); + // #endif }else{ PRINT("entering NormalMode\r\n"); } diff --git a/code/sdk/application/brandy/brandy_standard/service_init.c b/code/sdk/application/brandy/brandy_standard/service_init.c index c8510e1f6..0d35e7bd1 100644 --- a/code/sdk/application/brandy/brandy_standard/service_init.c +++ b/code/sdk/application/brandy/brandy_standard/service_init.c @@ -61,8 +61,8 @@ #include "cywee_at_cmd.h" #endif -#ifdef SUPPORT_AT_MMC5603 -#include "mmc5603_at_cmd.h" +#ifdef SUPPORT_AT_MAG +#include "mag_at_cmd.h" #endif #ifdef SUPPORT_AT_CUSTOMUTILS @@ -176,10 +176,10 @@ static void register_at_service(void) at_cmd_add_moudle(cywee_table, cywee_cmd_count); #endif -#ifdef SUPPORT_AT_MMC5603 - uint32_t mmc5603_cmd_count; - at_cmd_table_t *mmc5603_table = get_mmc5603_cmd_table(&mmc5603_cmd_count); - at_cmd_add_moudle(mmc5603_table, mmc5603_cmd_count); +#ifdef SUPPORT_AT_MAG + uint32_t mag_cmd_count; + at_cmd_table_t *mag_table = get_mag_cmd_table(&mag_cmd_count); + at_cmd_add_moudle(mag_table, mag_cmd_count); #endif #ifdef SUPPORT_AT_RTCTEST diff --git a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c index 74c3b2c22..9e17c936d 100644 --- a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c +++ b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c @@ -79,14 +79,14 @@ #ifdef SUPPORT_BATTERY_SERVICE #include "battery_service.h" #endif -#ifdef MAG_MMC5603 +#ifdef SUPORT_MAG_SERVICE #include "mag_service.h" #endif #ifdef ACC_LIS2DOC #include "acc_service.h" #endif -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE #include "cywee_service.h" #endif @@ -464,13 +464,13 @@ static void thread_main(const void *unused) * ConfigModel 初始化 * */ -#ifdef CUSTOM_UTILS - ConfigModelInit(); - uapi_runtime_log_service_init(); - init_btaddr_btname(); - uapi_calendar_init(); - uapi_calendar_recover_date(); -#endif +// #ifdef CUSTOM_UTILS +// ConfigModelInit(); +// uapi_runtime_log_service_init(); +// init_btaddr_btname(); +// uapi_calendar_init(); +// uapi_calendar_recover_date(); +// #endif #if DSP_EXIST == YES audio_init(); #endif @@ -504,10 +504,10 @@ static void thread_main(const void *unused) #endif -#ifdef CUSTOM_UTILS - uapi_custom_cmd_service_init(); - uapi_custom_fileoperate_service_init(); -#endif +// #ifdef CUSTOM_UTILS +// uapi_custom_cmd_service_init(); +// uapi_custom_fileoperate_service_init(); +// #endif #ifdef SUPPORT_CAT1_SERVICE @@ -527,7 +527,7 @@ static void thread_main(const void *unused) custom_i2c_init(I2C_BUS_0); custom_i2c_init(I2C_BUS_2); -#ifdef MAG_MMC5603 +#ifdef SUPORT_MAG_SERVICE uapi_mag_service_init(); #endif @@ -535,7 +535,7 @@ static void thread_main(const void *unused) uapi_ppg_service_init(); #endif -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE uapi_cywee_service_init(); #endif @@ -554,9 +554,9 @@ static void thread_main(const void *unused) #endif /*启动蓝牙ble服务,cywee有重置 mac地址的操作,会需要把 蓝牙服务开启放在cywee服务之后*/ -#ifdef CUSTOM_UTILS - start_custom_ble_service(); -#endif +// #ifdef CUSTOM_UTILS +// start_custom_ble_service(); +// #endif // #ifdef SUPPORT_ALIPAY_SEC // #if !defined(A5133_DEMO_SERVER) && !defined(A5133_DEMO_CLIENT) // uapi_alipay_svr_init(); @@ -579,9 +579,9 @@ static void thread_main(const void *unused) //开始播放开机动画,并启动ohos系统 ohos_startup(); #endif -#ifdef CUSTOM_UTILS - startup_post_init(); -#endif +// #ifdef CUSTOM_UTILS +// startup_post_init(); +// #endif set_startup_finish_flag(); } diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/activity/src/ActivityModel.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/activity/src/ActivityModel.cpp index 962895ddf..b0b6d0209 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/activity/src/ActivityModel.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/activity/src/ActivityModel.cpp @@ -24,7 +24,7 @@ #include "custom_utils.h" -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE #include "cywee_service.h" #endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/bloodoxygen/src/BloodResultPresenter.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/bloodoxygen/src/BloodResultPresenter.cpp index 523378418..5801e90dd 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/bloodoxygen/src/BloodResultPresenter.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/bloodoxygen/src/BloodResultPresenter.cpp @@ -40,7 +40,7 @@ #include "power_display_service.h" #include "custom_utils.h" -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE #include "cywee_service.h" #endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/compass/src/CompassModel.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/compass/src/CompassModel.cpp index e9ff3f5c8..182e04a0e 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/compass/src/CompassModel.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/compass/src/CompassModel.cpp @@ -1,3 +1,11 @@ +/* + * @Author: penglei 1624952103@qq.com + * @Date: 2025-05-15 11:27:16 + * @LastEditors: penglei 1624952103@qq.com + * @LastEditTime: 2025-05-16 16:24:33 + * @FilePath: /FD230/code/sdk/application/wearable/fd230/nativeapp/nativeui/compass/src/CompassModel.cpp + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ /* * Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved. * Description: CompassModel.cpp @@ -9,6 +17,11 @@ #include "CompassModel.h" #include +#ifdef SUPORT_MAG_SERVICE +#include "mag_hal.h" +#include "mag_service.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -33,15 +46,20 @@ void CompassModel::SetCalibrationStatus(uint8_t status) uint8_t CompassModel::GetCalibrationStatus(void) { +#ifdef SUPORT_MAG_SERVICE + if(mag_get_iAccuracy() < 3) + return 1; + else + return 0; +#endif return 0; } void CompassModel::SetDisplayAngle(uint16_t angle) { - displayAngle += angle; - if (displayAngle > 359) { - displayAngle = 0; - } +#ifdef SUPORT_MAG_SERVICE + displayAngle = (int16_t)mag_get_fAzimuth(); +#endif } uint16_t CompassModel::GetDisplayAngle(void) @@ -68,11 +86,17 @@ time_t CompassModel::GetCurrentTime(void) bool CompassModel::OpenCompassSensor(void) { +#ifdef SUPORT_MAG_SERVICE + mag_start(); +#endif return true; } bool CompassModel::CloseCompassSensor(void) { +#ifdef SUPORT_MAG_SERVICE + mag_stop(); +#endif return true; } } diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heart_blood/CheckAbnormalPresenter.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heart_blood/CheckAbnormalPresenter.cpp index 13462f477..08450d56f 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heart_blood/CheckAbnormalPresenter.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heart_blood/CheckAbnormalPresenter.cpp @@ -46,7 +46,7 @@ #include "power_display_service.h" #include "custom_utils.h" -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE #include "cywee_service.h" #endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heart_blood/CheckInvalidPresenter.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heart_blood/CheckInvalidPresenter.cpp index f13bf69ff..d821e49bb 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heart_blood/CheckInvalidPresenter.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heart_blood/CheckInvalidPresenter.cpp @@ -46,7 +46,7 @@ #include "power_display_service.h" #include "custom_utils.h" -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE #include "cywee_service.h" #endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartModel.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartModel.cpp index 7a343c687..2d1014c7e 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartModel.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartModel.cpp @@ -44,7 +44,7 @@ #include #include -// #include "battery_hal.h" +#include "battery_hal.h" #include "languagecode/LanguageInit.h" #include "ui_service.h" diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartResultPresenter.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartResultPresenter.cpp index f64c063df..70d19efd2 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartResultPresenter.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartResultPresenter.cpp @@ -39,7 +39,7 @@ #include "power_display_service.h" #include "custom_utils.h" -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE #include "cywee_service.h" #endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialLabelView.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialLabelView.cpp index 54a2e90f6..526d0a2fd 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialLabelView.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialLabelView.cpp @@ -82,7 +82,7 @@ namespace OHOS { if (num == 0 || data == nullptr) { - GRAPHIC_LOGE("Invalid data or num."); + // GRAPHIC_LOGE("Invalid data or num."); return; } diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/motionrecognition/src/MotionRecognitionPresenter.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/motionrecognition/src/MotionRecognitionPresenter.cpp index c93034712..393a035e2 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/motionrecognition/src/MotionRecognitionPresenter.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/motionrecognition/src/MotionRecognitionPresenter.cpp @@ -13,7 +13,7 @@ #include #include "ConfigModel.h" #include -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE #include "cywee_service.h" #endif #include "custom_runtime.h" @@ -106,7 +106,7 @@ namespace OHOS { case UICheckBox::SELECTED: WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MotionRecognition is enable!"); - #ifdef ENABLE_CYWEE + #ifdef SUPPORT_CYWEE_SERVICE do_cywee_service_check_msg(CYWEE_SERVICE_CMD_OPEN_AR_ALERT,NULL); #endif ConfigModel::GetInstance()->SetMotionRecognition(true); @@ -114,7 +114,7 @@ namespace OHOS break; case UICheckBox::UNSELECTED: WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MotionRecognition is disable!"); - #ifdef ENABLE_CYWEE + #ifdef SUPPORT_CYWEE_SERVICE do_cywee_service_check_msg(CYWEE_SERVICE_CMD_CLOSE_AR_ALERT,NULL); #endif ConfigModel::GetInstance()->SetMotionRecognition(false); diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/saveele/src/SaveBatPresenter.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/saveele/src/SaveBatPresenter.cpp index c4be16f9d..f0c616da2 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/saveele/src/SaveBatPresenter.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/saveele/src/SaveBatPresenter.cpp @@ -51,13 +51,13 @@ void SaveBatPresenter::OnStart() { Presenter::OnStart(); // 1.获取原drag #ifdef CUSTOM_UTILS - drag_x = get_drag_limit(0); - drag_y = get_drag_limit(1); + // drag_x = get_drag_limit(0); + // drag_y = get_drag_limit(1); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "drag_x:%d,drag_y:%d", drag_x, drag_y); - // 2.设置drag - enable_drag(0, 0); - enable_drag(1, 0); + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "drag_x:%d,drag_y:%d", drag_x, drag_y); + // // 2.设置drag + // enable_drag(0, 0); + // enable_drag(1, 0); #endif } diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/sleep/src/SleepModel.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/sleep/src/SleepModel.cpp index b4024fd01..da8eedb7f 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/sleep/src/SleepModel.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/sleep/src/SleepModel.cpp @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: SLEPPNOTIFY24-06-26 19:36:48 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2024-11-27 11:15:14 + * @LastEditTime: 2025-05-16 18:23:47 * @FilePath: * /FD230/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp * @Description: @@ -47,6 +47,10 @@ #include #include +#ifdef SUPPORT_CYWEE_SERVICE +#include "cywee_service.h" +#endif + extern "C" errcode_t uapi_get_TIME_STR(uint32_t time, char *p_time, char date_separator, char time_separator, date_format_t format); @@ -520,7 +524,9 @@ namespace OHOS void SleepModel::msg_save_sleep_data() { // 配置睡眠数据 int cmd = 0; - // do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA,&cmd); // 获取睡眠数据 但不中止睡眠 +#ifdef SUPPORT_CYWEE_SERVICE + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA,&cmd); // 获取睡眠数据 但不中止睡眠 +#endif } void SleepModel::UpdateSleepView() diff --git a/code/sdk/application/wearable/fd230/service/broadcast/include/broadcast_feature.h b/code/sdk/application/wearable/fd230/service/broadcast/include/broadcast_feature.h index 3c9fcf0f3..e2ceb0096 100644 --- a/code/sdk/application/wearable/fd230/service/broadcast/include/broadcast_feature.h +++ b/code/sdk/application/wearable/fd230/service/broadcast/include/broadcast_feature.h @@ -48,7 +48,7 @@ typedef enum { TOPIC_EVENT_HFP_PHONE_TO_WATCH, TOPIC_EVENT_HFP_WATCH_TO_PHONE, TOPIC_EVENT_HFP_HINT, -#ifdef CYWEE_SPORT +#ifdef SUPPORT_CYWEE_SERVICE TOPIC_EVENT_ACTIVITY_UPDATE, TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE, TOPIC_EVENT_AR_ALERT_TYPE_UPDATE, diff --git a/code/sdk/application/wearable/service/broadcast/src/broadcast_implement.c b/code/sdk/application/wearable/service/broadcast/src/broadcast_implement.c index 7404f171f..3141b0dd7 100644 --- a/code/sdk/application/wearable/service/broadcast/src/broadcast_implement.c +++ b/code/sdk/application/wearable/service/broadcast/src/broadcast_implement.c @@ -28,7 +28,7 @@ static const TopicToCore topicToCoreArray[] = { {TOPIC_EVENT_SHUTDOWN, A_CORE_MASK, 1}, {TOPIC_EVENT_HEARTRATE_UPDATA, A_CORE_MASK, 1}, {TOPIC_EVENT_STATIC_HEARTRATE_UPDATA, A_CORE_MASK, 1}, -#ifdef CYWEE_SPORT +#ifdef SUPPORT_CYWEE_SERVICE {TOPIC_EVENT_ACTIVITY_UPDATE, A_CORE_MASK, 1}, {TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE, A_CORE_MASK, 1}, {TOPIC_EVENT_AR_ALERT_TYPE_UPDATE, A_CORE_MASK, 1}, diff --git a/code/sdk/build/config/target_config/brandy/config.py b/code/sdk/build/config/target_config/brandy/config.py index 97f89fbc0..fd0a2d96d 100644 --- a/code/sdk/build/config/target_config/brandy/config.py +++ b/code/sdk/build/config/target_config/brandy/config.py @@ -337,38 +337,35 @@ target = { 'BOARD_FD230', 'FT_SINGLE_UART', 'CONFIG_EFUSE_READ_TO_RAM', - # 'CUSTOM_UTILS', + #'CUSTOM_UTILS', # 'CUSTOM_HID_SERVICE', # 'WEARABLE_LOG_DEBUG', 'SUPPORT_RC_CALIBRATION', - # 'PPG_HX3695', + 'PPG_HX3695', 'VIB_USE_PWM', 'CONFIG_PWM_SUPPORT', # 'ACC_LIS2DOC', - # 'ENABLE_CYWEE', - # 'ENABLE_CUSTOM_I2C', - # 'SUPPORT_AT_CYWEE', - # 'MAG_MMC5603', - # 'ENABLE_VIBRATOR', + 'ENABLE_CUSTOM_I2C', + #'ENABLE_VIBRATOR', # 'ENABLE_SLIP', 'ENCODER_SUPPORT', - # 'SUPPORT_SPO2_NOTIFICATION', - # 'SUPPORT_SPO2_NOTIFICATION_TEST', + #'SUPPORT_SPO2_NOTIFICATION', + #'SUPPORT_SPO2_NOTIFICATION_TEST', # 'SUPPORT_DEVICE_PAIRING_NOTIFICATION', # 'ENABLE_FONT_VECTOR_GLOBAL', # 'ENABLE_SHAPING', 'SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION', - # 'SUPPORT_AT_CUSTOMUTILS', + #'SUPPORT_AT_CUSTOMUTILS', # 'SUPPORT_BLE_SERVICE', 'FD230', # 'SUPPORT_AUTO_OTA_SERVER', # 'CONFIG_DFX_SUPPORT_DIAG_UP_MACHINE=1', #"MEM_CHECK", #'ENABLE_WEBSOCKET', - # 'CYWEE_SPORT', - # 'CYWEE_MAC_ACTIVE', - 'SUPPORT_CAT1_SERVICE', - # 'SUPPORT_TCPIP', + 'SUPPORT_CYWEE_SERVICE', + 'CYWEE_MAC_ACTIVE', + #'SUPPORT_CAT1_SERVICE', + #'SUPPORT_TCPIP', 'SUPPORT_HID_SERVICE', 'SUPPORT_BAIDU_MAP', 'CFG_FLASH_SIZE=16', @@ -384,9 +381,9 @@ target = { 'audio_at_service', 'media_at_service', 'bt_manager_at_service', - # "ppg_sensor", + "ppg_sensor", # "ppgBleService", - # "mag_sensor", + "mag_sensor_mmc5603", "vibrator", "vibrator_service", "-:lwip", @@ -400,14 +397,17 @@ target = { "custom_config", "rotary_encoder", "nativelauncher", - # "ppg_service", - # "cywee", - # "batterry_service", + "ppg_service", + "cywee", + "batterry_service", # "bleservice", # "blemoder", # "factorytest_service", # "hid_service", # "producttest", + "ppg_hal", + "mag_hal", + "mag_service", ], 'image_analysis': False, 'fs_image_path':'fd230', @@ -457,9 +457,7 @@ target = { 'VIB_USE_PWM', 'CONFIG_PWM_SUPPORT', # 'ACC_LIS2DOC', - # 'ENABLE_CYWEE', # 'ENABLE_CUSTOM_I2C', - # 'SUPPORT_AT_CYWEE', # 'MAG_MMC5603', # 'ENABLE_VIBRATOR', # 'ENABLE_SLIP', @@ -477,7 +475,7 @@ target = { # 'CONFIG_DFX_SUPPORT_DIAG_UP_MACHINE=1', #"MEM_CHECK", # 'ENABLE_WEBSOCKET', - # 'CYWEE_SPORT', + # 'SUPPORT_CYWEE_SERVICE', # 'CYWEE_MAC_ACTIVE', # 'SUPPORT_CAT1_SERVICE', # 'SUPPORT_TCPIP', @@ -563,9 +561,7 @@ target = { 'VIB_USE_PWM', 'CONFIG_PWM_SUPPORT', # 'ACC_LIS2DOC', - 'ENABLE_CYWEE', 'ENABLE_CUSTOM_I2C', - 'SUPPORT_AT_CYWEE', 'MAG_MMC5603', 'ENABLE_VIBRATOR', # 'ENABLE_SLIP', @@ -578,7 +574,7 @@ target = { 'ENABLE_SHAPING', 'SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION', 'SUPPORT_AT_CUSTOMUTILS', - 'CYWEE_SPORT', + 'SUPPORT_CYWEE_SERVICE', 'CYWEE_MAC_ACTIVE', # 'SUPPORT_TCPIP', 'SUPPORT_HID_SERVICE', @@ -675,10 +671,8 @@ target = { 'VIB_USE_PWM', 'CONFIG_PWM_SUPPORT', # 'ACC_LIS2DOC', - 'ENABLE_CYWEE', 'ENABLE_CUSTOM_I2C', #'ENABLE_CUSTOM_SPI', - 'SUPPORT_AT_CYWEE', 'MAG_MMC5603', 'ENABLE_VIBRATOR', 'ENABLE_SLIP', @@ -690,7 +684,7 @@ target = { 'ENABLE_SHAPING', 'SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION', 'SUPPORT_AT_CUSTOMUTILS', - 'CYWEE_SPORT', + 'SUPPORT_CYWEE_SERVICE', 'CYWEE_MAC_ACTIVE', 'SUPPORT_TCPIP', 'SUPPORT_HID_SERVICE', @@ -790,9 +784,7 @@ target = { 'SUPPORT_RC_CALIBRATION', 'VIB_USE_PWM', 'CONFIG_PWM_SUPPORT', - 'ENABLE_CYWEE', 'ENABLE_CUSTOM_I2C', - 'SUPPORT_AT_CYWEE', 'MAG_MMC5603', 'ENABLE_VIBRATOR', 'ENABLE_SLIP', @@ -804,7 +796,7 @@ target = { 'ENABLE_SHAPING', 'SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION', 'SUPPORT_AT_CUSTOMUTILS', - 'CYWEE_SPORT', + 'SUPPORT_CYWEE_SERVICE', 'CYWEE_MAC_ACTIVE', 'SUPPORT_TCPIP', 'SUPPORT_HID_SERVICE', diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_fd230.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_fd230.h index bba5880aa..36178bf6e 100644 --- a/code/sdk/drivers/boards/brandy_evb/board_config/board_fd230.h +++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_fd230.h @@ -20,7 +20,7 @@ //#include "service/a5133_service.h" #endif -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE extern void cywee_int_callback(pin_t pin, uintptr_t param); #endif /** @@ -314,7 +314,7 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { //默认开启 EXT LDO V3.0 V1.8 { S_AGPIO_L18, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19 采用timer 时这些中断要屏蔽*/ { S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cywee_int_callback }, //{ S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int_callback }, diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_lt22.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_lt22.h index 709d2dabf..e7ce60593 100644 --- a/code/sdk/drivers/boards/brandy_evb/board_config/board_lt22.h +++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_lt22.h @@ -295,7 +295,7 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { //默认开启 EXT LDO V3.0 V1.8 { S_AGPIO_L18, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19 采用timer 时这些中断要屏蔽*/ // { S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cywee_int_callback }, //{ S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int_callback }, diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_u8.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_u8.h index aec596b6a..30d5945c5 100644 --- a/code/sdk/drivers/boards/brandy_evb/board_config/board_u8.h +++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_u8.h @@ -15,7 +15,7 @@ extern void ppg_int_callback(pin_t pin, uintptr_t param); #endif -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE extern void cywee_int_callback(pin_t pin, uintptr_t param); #endif @@ -308,7 +308,7 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { //默认开启 EXT LDO V3.0 V1.8 { S_AGPIO_L18, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19 采用timer 时这些中断要屏蔽*/ { S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cywee_int_callback }, //{ S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int_callback }, diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_w9.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_w9.h index b506e9cd8..48630fffb 100644 --- a/code/sdk/drivers/boards/brandy_evb/board_config/board_w9.h +++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_w9.h @@ -306,7 +306,7 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { //默认开启 EXT LDO V3.0 V1.8 { S_AGPIO_L18, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19 采用timer 时这些中断要屏蔽*/ // { S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cywee_int_callback }, //{ S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int_callback }, diff --git a/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c b/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c index dc932567c..dbe840e5e 100644 --- a/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c +++ b/code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c @@ -304,9 +304,9 @@ void log_factory_at_callback(const void *buffer, uint16_t length, bool remaining #endif #ifndef SUPPORT_RECOVERY_DISPLAY //判定是否是在编译RECOVERY image,本参数不支持RECOVERY -#ifdef CUSTOM_UTILS - if (uapi_custom_uart_rx_enable_flag() == false) -#endif +// #ifdef CUSTOM_UTILS +// if (uapi_custom_uart_rx_enable_flag() == false) +// #endif { if (buffer != NULL && ((uint8_t*)buffer)[0]=='A' && ((uint8_t*)buffer)[1]=='T') { diff --git a/code/sdk/middleware/chips/brandy/exception/chip_system_time.c b/code/sdk/middleware/chips/brandy/exception/chip_system_time.c index 02e2775cb..ecef3bb80 100644 --- a/code/sdk/middleware/chips/brandy/exception/chip_system_time.c +++ b/code/sdk/middleware/chips/brandy/exception/chip_system_time.c @@ -72,6 +72,13 @@ int get_timezone_min(void) return zone; } +void uapi_set_timezone(uint16_t timezone_quarters) +{ + uint16_t tz_zone = readw(TZ_ADDRESS) & 0xFF00; + tz_zone = tz_zone | timezone_quarters; + writew(TZ_ADDRESS, tz_zone); +} + void save_time(void) { uint64_t time_sec = get_local_timestamp(); diff --git a/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_control.c b/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_control.c index 4657313a3..f09c3cedd 100644 --- a/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_control.c +++ b/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_control.c @@ -215,12 +215,23 @@ static void pm_sdio_power_control(pm_control_t type) } } +static void pm_app_wake_power_control(pm_control_t type) +{ + if (type == PM_APP_WAKE_NEEDED) { + uapi_pm_add_sleep_veto(PM_ID_SCREEN); + } else if (type == PM_APP_WAKE_NONEED) { + uapi_pm_remove_sleep_veto(PM_ID_SCREEN); + } +} + static void pm_display_power_control(pm_control_t type) { if (type == PM_DISPLAY_POWER_UP_AND_RUN) { pm_display_power_on(); } else if (type == PM_DISPLAY_POWER_OFF) { pm_display_power_off(); + }else if (type <= PM_APP_WAKE_NONEED) { + pm_app_wake_power_control(type); } } diff --git a/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_control.h b/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_control.h index aafaed039..978b9937e 100644 --- a/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_control.h +++ b/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_control.h @@ -1,3 +1,11 @@ +/* + * @Author: penglei 1624952103@qq.com + * @Date: 2025-05-15 11:27:18 + * @LastEditors: penglei 1624952103@qq.com + * @LastEditTime: 2025-05-16 11:24:24 + * @FilePath: /FD230/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_control.h + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ /* * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. * Description: pm control header @@ -22,6 +30,8 @@ typedef enum { PM_DISPLAY_POWER_OFF = 5, // !< Power off off. PM_SDIO_POWER_UP_AND_RUN = 6, // !< Power up and run sdio PM_SDIO_POWER_OFF = 7, // !< Power off off. + PM_APP_WAKE_NEEDED = 8, + PM_APP_WAKE_NONEED = 9, PM_CONTROL_MAX, } pm_control_t; diff --git a/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_core.c b/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_core.c index 5c49a6646..7faeee72a 100644 --- a/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_core.c +++ b/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_core.c @@ -104,9 +104,8 @@ void pm_core_wait_uart_tx_idle(void) #endif void pm_sikey_suspend(void) { -#ifdef CUSTOM_UTILS - custom_i2c_suspend(); -#endif + // custom_i2c_suspend(); + #ifdef ENABLE_CUSTOM_SPI custom_spi_suspend(); #endif @@ -115,9 +114,8 @@ void pm_sikey_suspend(void) { } void pm_sikey_resume(void){ -#ifdef CUSTOM_UTILS - custom_i2c_resume(); -#endif + + // custom_i2c_resume(); #ifdef ENABLE_CUSTOM_SPI custom_spi_resume(); diff --git a/code/sdk/zhihui/UI/producttest/src/testbt.cpp b/code/sdk/zhihui/UI/producttest/src/testbt.cpp index 327e91ac1..e92a457a5 100644 --- a/code/sdk/zhihui/UI/producttest/src/testbt.cpp +++ b/code/sdk/zhihui/UI/producttest/src/testbt.cpp @@ -300,27 +300,7 @@ namespace OHOS return true; } -// void uapi_cat1_remove_cat1_vote(void) -// { -// uint8_t cnt = pm_veto_get_id_cnt(PM_ID_CAT1); -// if (cnt == 1) { -// uapi_pm_remove_sleep_veto(PM_ID_CAT1); -// } else { -// // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"CAT1 SERVICE MCU has delete pm_id_cat1 vote\r\n"); -// } -// // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"\r\nCAT1 SERVICE MCU SLEEP SUCCESS\r\n"); -// } -// void uapi_cat1_add_cat1_vote(void) -// { -// uint8_t cnt = pm_veto_get_id_cnt(PM_ID_CAT1); -// if (cnt == 0) { -// uapi_pm_add_sleep_veto(PM_ID_CAT1); -// } else { -// // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"CAT1 SERVICE MCU has got pm_id_cat1 vote\r\n"); -// } -// // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"\r\nCAT1 SERVICE MCU WAKEUP SUCCESS\r\n"); -// } - + bool testBTView::testBTScrollViewcrollViewinit(uint8_t id) { diff --git a/code/sdk/zhihui/drivers/charge/service/charge_service.c b/code/sdk/zhihui/drivers/charge/service/charge_service.c index 3f9df3d83..09c65a7aa 100644 --- a/code/sdk/zhihui/drivers/charge/service/charge_service.c +++ b/code/sdk/zhihui/drivers/charge/service/charge_service.c @@ -80,7 +80,7 @@ void do_charge_service_check_msg(int cmd) ret = osal_msg_queue_write_copy(g_app_queue, (void *)&mail, sizeof(common_notify_mail_t), 0); if (ret != OSAL_SUCCESS) { - MMC_ERROR("Error charge Check MSG 0x%02X send failed! err=0x%x! \r\n",cmd, ret); + PRINT("Error charge Check MSG 0x%02X send failed! err=0x%x! \r\n",cmd, ret); } } @@ -131,7 +131,7 @@ void create_charge_queue(void) if (osal_msg_queue_create("charge_service_queue", APP_BOARD_MSG_COUNT, &g_app_queue, 0, sizeof(common_notify_mail_t)) != ERRCODE_SUCC) { - MMC_ERROR("[charge][service] app create mail fail\n"); + PRINT("[charge][service] app create mail fail\n"); } } diff --git a/code/sdk/zhihui/drivers/cywee/CMakeLists.txt b/code/sdk/zhihui/drivers/cywee/CMakeLists.txt index 1fa816d83..569bfdd1e 100644 --- a/code/sdk/zhihui/drivers/cywee/CMakeLists.txt +++ b/code/sdk/zhihui/drivers/cywee/CMakeLists.txt @@ -45,7 +45,7 @@ set(PRIVATE_DEFINES ) set(PUBLIC_DEFINES - +SUPPORT_AT_CYWEE ) # use this when you want to add ccflags like -include xxx @@ -64,7 +64,7 @@ set(MAIN_COMPONENT false ) -if("SUPPORT_AT_CYWEE" IN_LIST DEFINES) +if("SUPPORT_CYWEE_SERVICE" IN_LIST DEFINES) find_library(LIB_PATH_CWM_LIB_DML Lib/CWM_LIB_DML_clang_riscv.a ${CMAKE_CURRENT_SOURCE_DIR}) if("CYWEE_MAC_ACTIVE" IN_LIST DEFINES) find_library(LIB_PATH_CWM_LIB Lib/CWM_LIB_clang_riscv_mac.a ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/code/sdk/zhihui/drivers/cywee/Inc/cywee_hal.h b/code/sdk/zhihui/drivers/cywee/Inc/cywee_hal.h index 4a86e89a9..216fd977b 100644 --- a/code/sdk/zhihui/drivers/cywee/Inc/cywee_hal.h +++ b/code/sdk/zhihui/drivers/cywee/Inc/cywee_hal.h @@ -527,7 +527,7 @@ cywee_msg_callback_t cywee_get_send_msg_callback_func(void); void activity_mode_setstatus(int cmd); void cywee_oncharging_update(int oncharging_status); void cywee_wearstatus_update(int wearstatus); -void cywee_hrs_update(int hrs_data); +void cywee_hrs_update(void); void cywee_set_user_info(void); void cywee_get_sleep_data(int cmd); void cywee_reset_daily_data(void); diff --git a/code/sdk/zhihui/drivers/cywee/service/cywee_service.c b/code/sdk/zhihui/drivers/cywee/service/cywee_service.c index b40f7a25b..e5248865d 100644 --- a/code/sdk/zhihui/drivers/cywee/service/cywee_service.c +++ b/code/sdk/zhihui/drivers/cywee/service/cywee_service.c @@ -74,42 +74,42 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen // PRINT("normal mode activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%.2f], pace[%d]\n", // c_activity_result_t.activity_mode, c_activity_result_t.steps, c_activity_result_t.distance, c_activity_result_t.calories, // c_activity_result_t.step_frequency,c_activity_result_t.step_length, c_activity_result_t.pace); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + //CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); break; case SPORT_ACTIVE_MODE_TREADMILL: // PRINT("CYWEE_MSG_TYPE_TREADMILL_UPDATE\r\n"); // PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%.2f], pace[%d]\n", // c_activity_result_t.activity_mode, c_activity_result_t.steps, c_activity_result_t.distance, c_activity_result_t.calories, // c_activity_result_t.step_frequency,c_activity_result_t.step_length, c_activity_result_t.pace); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + //CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); break; case SPORT_ACTIVE_MODE_OUTDOOR_RUNNING: // PRINT("CYWEE_MSG_TYPE_OUTDOOR_RUNNING_UPDATE\r\n"); // PRINT("outdoor running activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%.2f], pace[%d]\n", // c_activity_result_t.activity_mode, c_activity_result_t.steps, c_activity_result_t.distance, c_activity_result_t.calories, // c_activity_result_t.step_frequency,c_activity_result_t.step_length, c_activity_result_t.pace); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + //CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); break; case SPORT_ACTIVE_MODE_INDOOR_RUNNING: // PRINT("CYWEE_MSG_TYPE_INDOOR_RUNNING_UPDATE\r\n"); // PRINT("indoor running activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%.2f], pace[%d]\n", // c_activity_result_t.activity_mode, c_activity_result_t.steps, c_activity_result_t.distance, c_activity_result_t.calories, // c_activity_result_t.step_frequency,c_activity_result_t.step_length, c_activity_result_t.pace); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + //CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); break; case SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR: // PRINT("CYWEE_MSG_TYPE_FITNESS_PEDOMETERR_UPDATE\r\n"); // PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%.2f], pace[%d]\n", // c_activity_result_t.activity_mode, c_activity_result_t.steps, c_activity_result_t.distance, c_activity_result_t.calories, // c_activity_result_t.step_frequency,c_activity_result_t.step_length, c_activity_result_t.pace); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + //CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); break; case SPORT_ACTIVE_MODE_FREE_TRAINING: // PRINT("CYWEE_MSG_TYPE_FREE_TRAINING_UPDATE\r\n"); // PRINT("free training activit_mode[%d], calories[%d],MHR_zone[%d]\n", // c_activity_result_t.activity_mode, c_activity_result_t.calories, c_activity_result_t.MHR_zone); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + //CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); break; default: break; @@ -127,7 +127,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen // c_activity_result_extre_info_t.ativity_zone_high_duration, // c_activity_result_extre_info_t.MHR_zone, // c_activity_result_extre_info_t.distance_motion); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE, &c_activity_result_extre_info_t, sizeof(cywee_activity_result_extre_info_t)); + //CustomEventPublish(TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE, &c_activity_result_extre_info_t, sizeof(cywee_activity_result_extre_info_t)); } else if (msg_type == CYWEE_MSG_TYPE_INACTIVITY_UPDATE) @@ -139,7 +139,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen case INACTIVITY_MODE_SEDENTARY_OUTPUT: // PRINT("sedentary status[%d], stand freq[%d], day[%d], hour[%d], min[%d]\n", // c_inactivity_result_t.status,c_inactivity_result_t.stand_freq,c_inactivity_result_t.day,c_inactivity_result_t.hour,c_inactivity_result_t.minute); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); + //CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); break; // 睡眠 @@ -147,7 +147,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen PRINT("sleep status[%d], month[%d], day[%d], hour[%d], min[%d]\n", c_inactivity_result_t.status,c_inactivity_result_t.month, c_inactivity_result_t.day, c_inactivity_result_t.hour, c_inactivity_result_t.minute); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); + //CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); break; // 小睡 @@ -155,7 +155,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen PRINT("nap status[%d], month[%d], day[%d], hour[%d], min[%d]\n", c_inactivity_result_t.status, c_inactivity_result_t.month, c_inactivity_result_t.day, c_inactivity_result_t.hour, c_inactivity_result_t.minute); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); + //CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); break; } @@ -169,7 +169,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen c_inactivity_accumulate_time_t.total_time, c_inactivity_accumulate_time_t.total_mild_sleep_time, c_inactivity_accumulate_time_t.total_deep_sleep_time, c_inactivity_accumulate_time_t.total_wake_time, c_inactivity_accumulate_time_t.total_rem_sleep_time); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE, &c_inactivity_accumulate_time_t, sizeof(cywee_inactivity_accumulate_time_t)); + //CustomEventPublish(TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE, &c_inactivity_accumulate_time_t, sizeof(cywee_inactivity_accumulate_time_t)); } else @@ -321,7 +321,7 @@ static void cywee_service_check_task(void const *arg) break; case CYWEE_SERVICE_CMD_HRS_CHANGE: - cywee_hrs_update(mail.data); + // cywee_hrs_update(mail.data); break; case CYWEE_SERVICE_CMD_SEDENTARY_MODE: diff --git a/code/sdk/zhihui/drivers/cywee/src/config.h b/code/sdk/zhihui/drivers/cywee/src/config.h deleted file mode 100644 index fd0a0105a..000000000 --- a/code/sdk/zhihui/drivers/cywee/src/config.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __CWM_SAMPLE_PROJ_CONFIG_H__ -#define __CWM_SAMPLE_PROJ_CONFIG_H__ - -//#define RUN_TEST_API_PROCESS - -//#define PRINTF_FROM_UART - -//#define CHECK_LOG_TOOL - -//#define SIGNAL_SIMULATE_PROCESS -//#define INPUT_DATA_WITH_FIFO_MODE - -#endif //__CWM_SAMPLE_PROJ_CONFIG_H__ diff --git a/code/sdk/zhihui/drivers/cywee/src/main_dml.c b/code/sdk/zhihui/drivers/cywee/src/main_dml.c index 38ea99f13..e2563662b 100644 --- a/code/sdk/zhihui/drivers/cywee/src/main_dml.c +++ b/code/sdk/zhihui/drivers/cywee/src/main_dml.c @@ -23,6 +23,15 @@ #endif #include "custom_save_runtime.h" +#ifdef SUPPORT_GNSS +#include "gnss_ctl.h" +#include "NMEA0183.h" +#endif + +#ifdef SUPPORT_PPG_SERVICE +#include "ppg_hal.h" +#endif + #define AP_ENABLE_DML_SDO_LISTEN #define GSENSON_MSG_COUNT 64 @@ -128,6 +137,85 @@ static uint8_t timeout = 0; static uint8_t wake_up_flag = 0; +static osTimerId_t g_sport_timer = NULL; +static bool g_sport_stat = false; +#define SPORT_CHECK_MS 1000 + +void cywee_gnss_update(void) +{ +#ifdef SUPPORT_GNSS + gps_data_t *gps_data = getGPSGlobaldata(); + if(gps_data == NULL) + { + PRINT("gps_data == NULL \n"); + return; + } + + if(gps_data->status < 1) + return; + + memset(&csd, 0, sizeof(CUSTOM_GNSS)); + csd.sensorType = CUSTOM_GNSS; + csd.dData[0] = gps_data->location.lat;//latitude (degrees) (range: -90~90); //纬度 + csd.dData[1] = gps_data->location.lng;//longitude (degrees) (range: -180~180) //经度 + csd.dData[2] = gps_data->location.alt;//altitude (meters) //海拔 + csd.dData[3] = gps_data->ground_course;//bearing (heading in degrees) //方位角 + csd.dData[4] = gps_data->ground_speed;//speed (m/s) //速度 + csd.dData[5] = gps_data->hdop;//Horizontal_Accuracy (meters) //水平精度 + csd.dData[6] = gps_data->vdop;//Vertical_Accuracy (meters) //垂直精度 + csd.dData[7] = 0; //水平精度衰减因子 + csd.dData[8] = 0; //垂直精度衰减因子 + CWM_CustomSensorInput(&csd); +#endif +} + + +void cywee_hrs_update(void) +{ + uint8_t hrs_data = 0; +#ifdef SUPPORT_PPG_SERVICE + // hrs = hrs_data; + // CWM_OS_dbgPrintf("hrs_data : %d\r\n",hrs_data); + hrs_data = ppg_get_hrs(); +#endif + memset(&csd, 0, sizeof(CUSTOM_HEARTRATE)); + csd.sensorType = CUSTOM_HEARTRATE; + csd.fData[0] = hrs_data; + CWM_CustomSensorInput(&csd); +} + +static void cywee_service_check_timer_callback(void) +{ + cywee_hrs_update(); + cywee_gnss_update(); +} + +static void cywee_sport_timer_start_check(uint32_t rtc_ms) +{ + if (g_sport_timer == NULL) + return; + + if (!g_sport_stat) + { + osTimerStart(g_sport_timer, rtc_ms); + g_sport_stat = true; + } + +} + +static void cywee_sport_timer_stop_check(void) +{ + if (g_sport_timer == NULL) + return; + + if (g_sport_stat) + { + osTimerStop(g_sport_timer); + g_sport_stat = false; + } +} + + #ifdef CYWEE_MAC_ACTIVE int cm__hs1__mac_c1_init(void); int cm__hs1__deinit(void); @@ -842,16 +930,6 @@ void cywee_time_sync(void) uapi_create_folder(dir_path); } -void cywee_hrs_update(int hrs_data) -{ - // hrs = hrs_data; - // CWM_OS_dbgPrintf("hrs_data : %d\r\n",hrs_data); - memset(&csd, 0, sizeof(CUSTOM_HEARTRATE)); - csd.sensorType = CUSTOM_HEARTRATE; - csd.fData[0] = hrs_data; - CWM_CustomSensorInput(&csd); -} - void cywee_oncharging_update(int oncharging_status) { // CWM_OS_dbgPrintf("oncharging : %d\r\n",oncharging_status); @@ -972,6 +1050,11 @@ void cywee_inactivity_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); + else + cywee_sport_timer_stop_check(); + switch (mode) { //一般模式(生活模式) @@ -1089,11 +1172,11 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { gxyz_t.y = sensorEVT->fData[1]; gxyz_t.z = sensorEVT->fData[2]; - // CWM_OS_dbgPrintf("acc: x=%.3f, y=%.3f, z=%.3f\n", - // sensorEVT->fData[0], - // sensorEVT->fData[1], - // sensorEVT->fData[2] - // ); + CWM_OS_dbgPrintf("acc: x=%.3f, y=%.3f, z=%.3f\n", + sensorEVT->fData[0], + sensorEVT->fData[1], + sensorEVT->fData[2] + ); if(num_falg==GSENSON_MSG_COUNT) { @@ -1208,6 +1291,21 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { hrs_mode_state = 0; uapi_save_runtime_log(RUNTIME_LOG_OXYGEN_SPORT_MEASURE_END); } + } + if((int)sensorEVT->fData[1] == CUSTOM_GNSS) + { + CWM_OS_dbgPrintf("CUSTOM_GNSS !!! \r\n"); +#ifdef SUPPORT_GNSS + if((int)sensorEVT->fData[2] == 1) + { + + gnss_start(); + } + else + { + gnss_stop(); + } +#endif } break; case IDX_ALGO_SHAKE: @@ -1245,14 +1343,14 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { { sedentary_interval_count = 0; // cywee_func(CYWEE_MSG_TYPE_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); + //CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); } } else if(c_inactivity_result_t.status != 3) { sedentary_interval_count = 0; // cywee_func(CYWEE_MSG_TYPE_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); + //CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); } }else if((int)sensorEVT->fData[0] == 21){ @@ -1376,7 +1474,7 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_activity_result_extre_info_t.distance_motion = (int)sensorEVT->fData[14]; // cywee_func(CYWEE_MSG_TYPE_ACTIVITY_EXTRA_INFO_UPDATE,&c_activity_result_extre_info_t,sizeof(cywee_activity_result_extre_info_t)); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE, &c_activity_result_extre_info_t, sizeof(cywee_activity_result_extre_info_t)); + //CustomEventPublish(TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE, &c_activity_result_extre_info_t, sizeof(cywee_activity_result_extre_info_t)); }else if((int)sensorEVT->fData[0] == 5001) { @@ -1389,14 +1487,14 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { // c_activity_result_t.hrs = hrs; // hrs = 0; //每次上报完 清除心率值 // cywee_func(CYWEE_MSG_TYPE_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + //CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); }else if((int)sensorEVT->fData[0] == 102) { uapi_get_timestampe_ss(&tm); // CWM_OS_dbgPrintf("ar alert type : %d tm :%d \n",(int)sensorEVT->fData[1],tm); int ar_alert_type = (int)sensorEVT->fData[1]; - CustomEventPublish(TOPIC_EVENT_AR_ALERT_TYPE_UPDATE,&ar_alert_type,sizeof(int)); + //CustomEventPublish(TOPIC_EVENT_AR_ALERT_TYPE_UPDATE,&ar_alert_type,sizeof(int)); }else{ stepcount = (int)sensorEVT->fData[1]; @@ -1411,8 +1509,8 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { // c_activity_result_t.hrs = hrs; // hrs = 0; //每次上报完 清除心率值 // cywee_func(CYWEE_MSG_TYPE_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); - CustomEventPublish(TOPIC_EVENT_STEPDATA_UPDATE,&stepcount,sizeof(int)); + //CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + //CustomEventPublish(TOPIC_EVENT_STEPDATA_UPDATE,&stepcount,sizeof(int)); } break; @@ -1864,6 +1962,8 @@ int cywee_main_dml(void) cywee_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL); 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); //cywee_inactivity_mode_change(INACTIVITY_MODE_SLEEPING); @@ -1984,3 +2084,6 @@ void cywee_custom_save_wear_data(void) // uapi_save_file_data("user/userdata/wear.bin",&data,sizeof(SLEEP_STAT_T),"ab"); wear_file_check(data,"user/userdata/wear.bin"); } + +uint8_t cywee_dml_get_steps(void) +{return 0;} diff --git a/code/sdk/zhihui/drivers/mag/CMakeLists.txt b/code/sdk/zhihui/drivers/mag/CMakeLists.txt index 2f24c061c..19b960dfa 100644 --- a/code/sdk/zhihui/drivers/mag/CMakeLists.txt +++ b/code/sdk/zhihui/drivers/mag/CMakeLists.txt @@ -1,70 +1,3 @@ -#=============================================================================== -# @brief cmake file -# Copyright (c) @CompanyNameMagicTag 2023-2023. All rights reserved. -#=============================================================================== -set(COMPONENT_NAME "mag_sensor") - - -if("MAG_MMC5603" IN_LIST DEFINES) -set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/mmc5603/mmc_customer.c - ${CMAKE_CURRENT_SOURCE_DIR}/mmc5603/mmc5603_main.c - ${CMAKE_CURRENT_SOURCE_DIR}/mmc5603/MMC5603.c - ${CMAKE_CURRENT_SOURCE_DIR}/mmc5603/mmc5603_at_cmd.c - ${CMAKE_CURRENT_SOURCE_DIR}/service/mag_service.c -) -set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR}/mmc5603 - ${CMAKE_CURRENT_SOURCE_DIR}/service -) -set(PUBLIC_DEFINES - MAG_MMC5603 - SUPPORT_AT_MMC5603 -) -else() -set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/mmc5603/mmc_customer.c - ${CMAKE_CURRENT_SOURCE_DIR}/mmc5603/mmc5603_main.c - ${CMAKE_CURRENT_SOURCE_DIR}/mmc5603/MMC5603.c - ${CMAKE_CURRENT_SOURCE_DIR}/mmc5603/mmc5603_at_cmd.c - ${CMAKE_CURRENT_SOURCE_DIR}/service/mag_service.c -) -set(PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR}/mmc5603 - ${CMAKE_CURRENT_SOURCE_DIR}/service -) -set(PUBLIC_DEFINES - MAG_MMC5603 - SUPPORT_AT_MMC5603 -) -endif() - -set(PRIVATE_HEADER -) - -set(PRIVATE_DEFINES -) - -# use this when you want to add ccflags like -include xxx -set(COMPONENT_PUBLIC_CCFLAGS -) - -set(COMPONENT_CCFLAGS - -Wno-incompatible-function-pointer-types - -Wno-unused-function -) - -set(WHOLE_LINK - true -) - -set(MAIN_COMPONENT - false -) - -build_component() - -install_sdk(${CMAKE_CURRENT_SOURCE_DIR} "*") - -find_library(LIB_PATH_MMC5603 mmc5603/MemsicAlgoNolog.a ${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(${TARGET_NAME} PRIVATE -Wl,--whole-archive ${LIB_PATH_MMC5603} PRIVATE -Wl,--whole-archive) \ No newline at end of file +add_subdirectory_if_exist(service) +add_subdirectory_if_exist(hal) +add_subdirectory_if_exist(mmc5603) \ No newline at end of file diff --git a/code/sdk/zhihui/drivers/mag/hal/CMakeLists.txt b/code/sdk/zhihui/drivers/mag/hal/CMakeLists.txt new file mode 100644 index 000000000..7f82aa03d --- /dev/null +++ b/code/sdk/zhihui/drivers/mag/hal/CMakeLists.txt @@ -0,0 +1,37 @@ +#=============================================================================== +# @brief cmake file +# Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. +#=============================================================================== + +set(COMPONENT_NAME "mag_hal") + +set(PUBLIC_HEADER +${CMAKE_CURRENT_SOURCE_DIR} +) + +set(SOURCES +${CMAKE_CURRENT_SOURCE_DIR}/mag_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() diff --git a/code/sdk/zhihui/drivers/mag/hal/mag_hal.c b/code/sdk/zhihui/drivers/mag/hal/mag_hal.c new file mode 100644 index 000000000..bb6ba40da --- /dev/null +++ b/code/sdk/zhihui/drivers/mag/hal/mag_hal.c @@ -0,0 +1,58 @@ +#include +#include + +#ifdef MAG_MMC5603 +#include "mmc5603_hal.h" +#include "MMC5603.h" +#endif + + +void mag_sensor_check(void) +{ +#ifdef MAG_MMC5603 + mmc5603_check(); +#endif +} + +void mag_sensonr_start(void) +{ +#ifdef MAG_MMC5603 + mmc5603_start(); +#endif +} + +void mag_sensonr_stop(void) +{ +#ifdef MAG_MMC5603 + mmc5603_stop(); +#endif +} + +uint8_t mag_get_chip_id(void) +{ + uint8_t id = 0; +#ifdef MAG_MMC5603 + CUSTOM_MMC5603_GETID(&id); + printf("MMC5603 CHIP ID : 0x%x\n",id); +#endif + return id; +} + +int mag_get_iAccuracy(void) +{ + int iAccuracy = 0; +#ifdef MAG_MMC5603 + iAccuracy = mag_service_get_iAccuracy(); +#endif + return iAccuracy; +} + + +float mag_get_fAzimuth(void) +{ + float fAzimuth = 0; +#ifdef MAG_MMC5603 + fAzimuth = (float)mag_service_get_fAzimuth(); +#endif + return fAzimuth; +} \ No newline at end of file diff --git a/code/sdk/zhihui/drivers/mag/hal/mag_hal.h b/code/sdk/zhihui/drivers/mag/hal/mag_hal.h new file mode 100644 index 000000000..bad16d6db --- /dev/null +++ b/code/sdk/zhihui/drivers/mag/hal/mag_hal.h @@ -0,0 +1,39 @@ +/* + * @Author: penglei 1624952103@qq.com + * @Date: 2024-06-07 11:18:26 + * @LastEditors: penglei 1624952103@qq.com + * @LastEditTime: 2025-05-16 14:25:27 + * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.h + * @Description: + * + * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. + */ +#ifndef MAG_HAL_H__ +#define MAG_HAL_H__ +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif /* __cplusplus */ +#endif /* __cplusplus */ + +#ifdef MAG_MMC5603 +#define MAG_SENSOR_CHIP_ID 0X10 +#else +#define MAG_SENSOR_CHIP_ID 0 +#endif + + +void mag_sensonr_start(void); +void mag_sensonr_stop(void); + +uint8_t mag_get_chip_id(void); +int mag_get_iAccuracy(void); +float mag_get_fAzimuth(void); + +#ifdef __cplusplus +#if __cplusplus +} +#endif /* __cplusplus */ +#endif /* __cplusplus */ + +#endif \ No newline at end of file diff --git a/code/sdk/zhihui/drivers/mag/mmc5603/CMakeLists.txt b/code/sdk/zhihui/drivers/mag/mmc5603/CMakeLists.txt new file mode 100644 index 000000000..d6bd58f09 --- /dev/null +++ b/code/sdk/zhihui/drivers/mag/mmc5603/CMakeLists.txt @@ -0,0 +1,47 @@ +#=============================================================================== +# @brief cmake file +# Copyright (c) @CompanyNameMagicTag 2023-2023. All rights reserved. +#=============================================================================== +set(COMPONENT_NAME "mag_sensor_mmc5603") + +set(SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/mmc_customer.c + ${CMAKE_CURRENT_SOURCE_DIR}/mmc5603_main.c + ${CMAKE_CURRENT_SOURCE_DIR}/MMC5603.c +) +set(PUBLIC_HEADER + ${CMAKE_CURRENT_SOURCE_DIR} +) +set(PUBLIC_DEFINES + MAG_MMC5603 +) + +set(PRIVATE_HEADER +) + +set(PRIVATE_DEFINES +) + +# use this when you want to add ccflags like -include xxx +set(COMPONENT_PUBLIC_CCFLAGS +) + +set(COMPONENT_CCFLAGS + -Wno-incompatible-function-pointer-types + -Wno-unused-function +) + +set(WHOLE_LINK + true +) + +set(MAIN_COMPONENT + false +) + +install_sdk(${CMAKE_CURRENT_SOURCE_DIR} "*") + +find_library(LIB_PATH_MMC5603 MemsicAlgoNolog.a ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(${TARGET_NAME} PRIVATE -Wl,--whole-archive ${LIB_PATH_MMC5603} PRIVATE -Wl,--whole-archive) + +build_component() \ No newline at end of file diff --git a/code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_hal.h b/code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_hal.h index 069caef2a..5b95cb823 100644 --- a/code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_hal.h +++ b/code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_hal.h @@ -1,3 +1,11 @@ +/* + * @Author: penglei 1624952103@qq.com + * @Date: 2025-05-15 11:28:07 + * @LastEditors: penglei 1624952103@qq.com + * @LastEditTime: 2025-05-16 16:52:10 + * @FilePath: /FD230/code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_hal.h + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ /** * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n * @@ -31,6 +39,9 @@ int mmc5603_readPara_infile(void); void mmc5603_poweron(void); void mmc5603_poweroff(void); +float mag_service_get_fAzimuth(void); +int mag_service_get_iAccuracy(void); + #ifdef __cplusplus #if __cplusplus } diff --git a/code/sdk/zhihui/drivers/mag/service/CMakeLists.txt b/code/sdk/zhihui/drivers/mag/service/CMakeLists.txt new file mode 100644 index 000000000..9a135efb5 --- /dev/null +++ b/code/sdk/zhihui/drivers/mag/service/CMakeLists.txt @@ -0,0 +1,41 @@ +#=============================================================================== +# @brief cmake file +# Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. +#=============================================================================== + +set(COMPONENT_NAME "mag_service") + +set(PUBLIC_HEADER +${CMAKE_CURRENT_SOURCE_DIR} +) + +set(SOURCES +${CMAKE_CURRENT_SOURCE_DIR}/mag_at_cmd.c +${CMAKE_CURRENT_SOURCE_DIR}/mag_service.c +) + +set(COMPONENT_PUBLIC_CCFLAGS +) + +set(COMPONENT_CCFLAGS +-Wno-incompatible-function-pointer-types +-Wno-unused-function +) + +set(WHOLE_LINK + true +) + +set(MAIN_COMPONENT + false +) + +set(PUBLIC_DEFINES + SUPORT_MAG_SERVICE + SUPPORT_AT_MAG +) + +set(PRIVATE_DEFINES +) + +build_component() diff --git a/code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_at_cmd.c b/code/sdk/zhihui/drivers/mag/service/mag_at_cmd.c similarity index 51% rename from code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_at_cmd.c rename to code/sdk/zhihui/drivers/mag/service/mag_at_cmd.c index d821ed686..167940085 100644 --- a/code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_at_cmd.c +++ b/code/sdk/zhihui/drivers/mag/service/mag_at_cmd.c @@ -2,29 +2,28 @@ * @Author: penglei 1624952103@qq.com * @Date: 2024-12-16 09:56:44 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2024-12-16 20:50:13 - * @FilePath: /sdk615/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_at_cmd.c + * @LastEditTime: 2025-05-16 11:51:20 + * @FilePath: /sdk615/code/sdk/drivers/peripheral/mag/mag/mag_at_cmd.c * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ -// #include "mmc5603.h" +// #include "mag.h" #include "at_cmd_api.h" #include "pm_control.h" -#include "MMC5603.h" -#include "mmc_customer.h" +#include "mag_hal.h" #include "mag_service.h" #define ARRAY_COUNT(array) (sizeof(array) / sizeof(array[0])) -#define MMC5603_MAX_ARGC 8 -#define MMC5603_MAX_ARGV_LEN 64 +#define MAG_MAX_ARGC 8 +#define MAG_MAX_ARGV_LEN 64 -#define MMC5603_SUCCESS 0 -#define MMC5603_FAILED (-1) +#define MAG_SUCCESS 0 +#define MAG_FAILED (-1) static int ConvertCmdToParam(uint8_t *para, uint32_t paraLen, - uint8_t argv[MMC5603_MAX_ARGC][MMC5603_MAX_ARGV_LEN], uint32_t* argc) + uint8_t argv[MAG_MAX_ARGC][MAG_MAX_ARGV_LEN], uint32_t* argc) { uint32_t pos = 0; *argc = 0; @@ -34,14 +33,14 @@ static int ConvertCmdToParam(uint8_t *para, uint32_t paraLen, argv[*argc][pos] = '\0'; *argc += 1; pos = 0; - if (*argc >= MMC5603_MAX_ARGC) { - return MMC5603_FAILED; + if (*argc >= MAG_MAX_ARGC) { + return MAG_SUCCESS; } } else { argv[*argc][pos] = para[i]; pos++; - if (pos >= MMC5603_MAX_ARGV_LEN) { - return MMC5603_FAILED; + if (pos >= MAG_MAX_ARGV_LEN) { + return MAG_SUCCESS; } } } @@ -49,10 +48,10 @@ static int ConvertCmdToParam(uint8_t *para, uint32_t paraLen, *argc += 1; } - return MMC5603_SUCCESS; + return MAG_SUCCESS; } -static uint32_t mmc5603_start_test(uint8_t *para, uint32_t paraLen, char *strCommonCmd) +static uint32_t mag_start_test(uint8_t *para, uint32_t paraLen, char *strCommonCmd) { UNUSED(strCommonCmd); UNUSED(paraLen); @@ -60,7 +59,7 @@ static uint32_t mmc5603_start_test(uint8_t *para, uint32_t paraLen, char *strCom do_mag_service_check_msg(MAG_SERVICE_CMD_START_CHECK); return ERRCODE_SUCC; } -static uint32_t mmc5603_stop_test(uint8_t *para, uint32_t paraLen, char *strCommonCmd) +static uint32_t mag_stop_test(uint8_t *para, uint32_t paraLen, char *strCommonCmd) { UNUSED(strCommonCmd); UNUSED(paraLen); @@ -68,13 +67,13 @@ static uint32_t mmc5603_stop_test(uint8_t *para, uint32_t paraLen, char *strComm do_mag_service_check_msg(MAG_SERVICE_CMD_STOP_CHECK); return ERRCODE_SUCC; } -static const at_cmd_table_t g_mmc5603_cmd[] = { - { (char *)"AT^MMC5603TESTSTART", mmc5603_start_test, (char *)"1" }, - { (char *)"AT^MMC5603TESTSTOP", mmc5603_stop_test, (char *)"1" }, +static const at_cmd_table_t g_mag_cmd[] = { + { (char *)"AT^MAGTESTSTART", mag_start_test, (char *)"1" }, + { (char *)"AT^MAGTESTSTOP", mag_stop_test, (char *)"1" }, }; -at_cmd_table_t *get_mmc5603_cmd_table(uint32_t *cmd_count) +at_cmd_table_t *get_mag_cmd_table(uint32_t *cmd_count) { - *cmd_count = ARRAY_COUNT(g_mmc5603_cmd); - return (at_cmd_table_t *)g_mmc5603_cmd; + *cmd_count = ARRAY_COUNT(g_mag_cmd); + return (at_cmd_table_t *)g_mag_cmd; } diff --git a/code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_at_cmd.h b/code/sdk/zhihui/drivers/mag/service/mag_at_cmd.h similarity index 50% rename from code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_at_cmd.h rename to code/sdk/zhihui/drivers/mag/service/mag_at_cmd.h index 1f2dd30ce..b1cb9e610 100644 --- a/code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_at_cmd.h +++ b/code/sdk/zhihui/drivers/mag/service/mag_at_cmd.h @@ -1,3 +1,11 @@ +/* + * @Author: penglei 1624952103@qq.com + * @Date: 2025-05-15 11:28:07 + * @LastEditors: penglei 1624952103@qq.com + * @LastEditTime: 2025-05-16 11:52:31 + * @FilePath: /FD230/code/sdk/zhihui/drivers/mag/service/mag_at_cmd.h + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ /** * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n * @@ -6,8 +14,8 @@ * History: \n * 2022-07-20, Create file. \n */ -#ifndef MMC5603_AT_PROCESS_H -#define MMC5603_AT_PROCESS_H +#ifndef MAG_AT_PROCESS_H +#define MAG_AT_PROCESS_H #include #include @@ -21,7 +29,7 @@ extern "C" { #endif /* __cplusplus */ #endif /* __cplusplus */ -at_cmd_table_t *get_mmc5603_cmd_table(uint32_t *cmd_count); +at_cmd_table_t *get_mag_cmd_table(uint32_t *cmd_count); #ifdef __cplusplus #if __cplusplus diff --git a/code/sdk/zhihui/drivers/mag/service/mag_service.c b/code/sdk/zhihui/drivers/mag/service/mag_service.c index b2561f258..2b089b671 100644 --- a/code/sdk/zhihui/drivers/mag/service/mag_service.c +++ b/code/sdk/zhihui/drivers/mag/service/mag_service.c @@ -1,83 +1,12 @@ -/** - * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n - * - * Description: Test adc source \n - * Author: @CompanyNameTag \n - * History: \n - * 2022-08-16, Create file. \n - */ - -#include "adc.h" -#define TEST_PARAM_ARGC_1 1 -#define TEST_PARAM_ARGC_2 2 -#define TEST_PARAM_ARGC_3 3 -#define TEST_PARAM_ARGC_4 4 -#define TEST_PARAM_ARGC_5 5 -#define TEST_PARAM_ARGC_6 6 -#define TEST_PARAM_ARGC_7 7 -#define TEST_PARAM_4_BYTES 4 -#define TEST_PARAM_8_BYTES 8 -typedef enum { - SUITE_OK = 0, - SUITE_UNKNOWN_FUNCTION = -1, - SUITE_ERROR_TIMED_OUT = -2, - SUITE_ERROR_BAD_PARAMS = -3, - SUITE_ERROR_PIN_ALLOCATION = -4, - SUITE_ERROR_PIN_DEALLOCATION = -5, - SUITE_ERROR_UNEXPECTED_INTERRUPT = -6, - SUITE_ALLOC_FAILED = -7, - SUITE_CONFIG_FAILED = -8, - SUITE_TEST_FAILED = -254, -} magservice_error_e; - -#if defined(CONFIG_ADC_SUPPORT_AFE) - -#error CONFIG_ADC_SUPPORT_AFE - -#include "hal_adc_v152.h" -#include "hal_adc_v152_regs_op.h" -#else -#include "hal_adc_v151.h" -#include "hal_adc_v151_regs_op.h" -#endif - -#include "adc_porting.h" -#include "pinctrl.h" -#include "debug_print.h" -#include "soc_osal.h" -#include "tcxo.h" -#include "irmalloc.h" -#include "errcode.h" -#include "common_def.h" - -#include "chip_core_irq.h" -#include "chip_io.h" -#include "gpio.h" -#include "pm_veto.h" - -#include "rtc.h" -#include "timer.h" -#include "systick.h" - - -static bool g_batter_service_initialled = false; - -#include "tcxo.h" - -#include "cmsis_os2.h" + #include "input_app.h" -#include "mmc5603_hal.h" +#include "mag_hal.h" #include "mag_service.h" -#include "mmc_customer.h" #include "custom_utils.h" -#ifdef BOARD_U8 -#include "vc9202_hal.h" -#endif - - #include "custom_runtime.h" + /*** * 其他cmd在Header里定义,对外开放 */ @@ -145,7 +74,7 @@ void do_mag_service_check_msg(int cmd) ret = osal_msg_queue_write_copy(g_app_queue, (void *)&mail, sizeof(common_notify_mail_t), 0); if (ret != OSAL_SUCCESS) { - MMC_ERROR("Error mag Check MSG 0x%02X send failed! err=0x%x! \r\n",cmd, ret); + PRINT("Error mag Check MSG 0x%02X send failed! err=0x%x! \r\n",cmd, ret); } } @@ -166,11 +95,13 @@ static void mag_service_check_task(void const *arg) if (mail.comm.app == MAG_SERVICE_CMD_TIMER_CHECK) { // mag_service_check_and_enable_charge(); // MMC_LOG("MAG_SERVICE_CMD_TIMER_CHECK\r\n"); - mmc5603_check(); + // mmc5603_check(); + mag_sensor_check(); }else if (mail.comm.app == MAG_SERVICE_CMD_START_CHECK){ uapi_dev_runtime_set_mmc_status(1); do_custom_fileoperate_service_check_msg(CUSTOM_FILEOPERATE_MSG_TYPE_MMCDATA_READ, NULL, 0); - mmc5603_start(); + // mmc5603_start(); + mag_sensonr_start(); LOS_Mdelay(20); mag_service_running_stat = true; // uapi_pm_add_sleep_veto(PM_ID_SCREEN); @@ -181,7 +112,8 @@ static void mag_service_check_task(void const *arg) do_custom_fileoperate_service_check_msg(CUSTOM_FILEOPERATE_MSG_TYPE_MMCDATA_SAVE, NULL, 0); mag_service_running_stat = false; osTimerStop(g_mag_service_timer); - mmc5603_stop(); + // mmc5603_stop(); + mag_sensonr_stop(); LOS_Mdelay(20); // uapi_pm_remove_sleep_veto(PM_ID_SCREEN); @@ -195,33 +127,23 @@ void create_mag_queue(void) if (osal_msg_queue_create("mag_service_queue", APP_BOARD_MSG_COUNT, &g_app_queue, 0, sizeof(common_notify_mail_t)) != ERRCODE_SUCC) { - MMC_ERROR("[mag][service] app create mail fail\n"); + PRINT("[mag][service] app create mail fail\n"); } } #define MAG_BOARD_TASK_SIZE 0x1000 errcode_t uapi_mag_service_init(void) { - PRINT("uapi_mag_service_init !\r\n"); -#ifdef BOARD_U8 - mmc5603_poweron(); -#endif - if(CUSTOM_MMC5603_CheckID()!=1) + if(mag_get_chip_id() != MAG_SENSOR_CHIP_ID) { //TODO 设置磁力计检测是否存在标识 PRINT("MMC5603 not found!\r\n"); -#ifdef BOARD_U8 - mmc5603_poweroff(); -#endif // return ERRCODE_FAIL; } - mmc5603_stop(); -#ifdef BOARD_U8 - mmc5603_poweroff(); -#endif + g_mag_sensor_exist = true; app_task_definition_t taskcfg={0}; @@ -253,4 +175,14 @@ errcode_t uapi_mag_service_init(void) // void mag_service_service_suspend(void) // { // MMC_LOG("mag_service_service suspend!\r\n"); -// } \ No newline at end of file +// } + +void mag_start(void) +{ + do_mag_service_check_msg(MAG_SERVICE_CMD_START_CHECK); +} + +void mag_stop(void) +{ + do_mag_service_check_msg(MAG_SERVICE_CMD_STOP_CHECK); +} \ No newline at end of file diff --git a/code/sdk/zhihui/drivers/mag/service/mag_service.h b/code/sdk/zhihui/drivers/mag/service/mag_service.h index 951ffeef9..47682f43b 100644 --- a/code/sdk/zhihui/drivers/mag/service/mag_service.h +++ b/code/sdk/zhihui/drivers/mag/service/mag_service.h @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: 2024-12-16 09:56:44 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2024-12-18 17:23:06 + * @LastEditTime: 2025-05-16 15:24:45 * @FilePath: /sdk615/code/sdk/drivers/peripheral/mag/service/mag_service.h * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -38,13 +38,10 @@ void uapi_mag_service_deinit(void); */ void do_mag_service_check_msg(int cmd); -float mag_service_get_fAzimuth(void); -float mag_service_get_fPitch(void); -float mag_service_get_fRoll(void); +void mag_start(void); +void mag_stop(void); -int mag_service_get_iAccuracy(void); - #ifdef __cplusplus #if __cplusplus } diff --git a/code/sdk/zhihui/drivers/ppg/CMakeLists.txt b/code/sdk/zhihui/drivers/ppg/CMakeLists.txt index 88975a2a8..271ddd2e8 100644 --- a/code/sdk/zhihui/drivers/ppg/CMakeLists.txt +++ b/code/sdk/zhihui/drivers/ppg/CMakeLists.txt @@ -3,4 +3,5 @@ add_subdirectory_if_exist(hx3695) add_subdirectory_if_exist(ppgBleService) add_subdirectory_if_exist(vc9202) add_subdirectory_if_exist(vc921x) -add_subdirectory_if_exist(gh3x2x) \ No newline at end of file +add_subdirectory_if_exist(gh3x2x) +add_subdirectory_if_exist(hal) \ No newline at end of file diff --git a/code/sdk/zhihui/drivers/ppg/gh3x2x/src/gh3x2x_hal.c b/code/sdk/zhihui/drivers/ppg/gh3x2x/src/gh3x2x_hal.c index 5a6f1ec43..582e51b57 100644 --- a/code/sdk/zhihui/drivers/ppg/gh3x2x/src/gh3x2x_hal.c +++ b/code/sdk/zhihui/drivers/ppg/gh3x2x/src/gh3x2x_hal.c @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: 2024-03-13 15:08:38 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2025-02-18 14:35:27 + * @LastEditTime: 2025-05-15 11:56:34 * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c * @Description: * @@ -90,7 +90,7 @@ void ppg_send_cmd_to_gh3x2x_driver(char* mode, uint8_t enable) if (enable == 1) { // ppg_service_running_stat = true; - uapi_pm_control(PM_APP_WAKE_NEEDED); + // uapi_pm_control(PM_APP_WAKE_NEEDED); tyhx_poweron(); // GH3X2X_AFE_StartFunction(mode); GH3X2X_AFE_Init(); @@ -98,7 +98,7 @@ void ppg_send_cmd_to_gh3x2x_driver(char* mode, uint8_t enable) } else { - uapi_pm_control(PM_APP_WAKE_NONEED); + // uapi_pm_control(PM_APP_WAKE_NONEED); GH3X2X_AFE_StopSampling(); tyhx_poweroff(); } diff --git a/code/sdk/zhihui/drivers/ppg/hal/CMakeLists.txt b/code/sdk/zhihui/drivers/ppg/hal/CMakeLists.txt new file mode 100644 index 000000000..620b0ea36 --- /dev/null +++ b/code/sdk/zhihui/drivers/ppg/hal/CMakeLists.txt @@ -0,0 +1,38 @@ +#=============================================================================== +# @brief cmake file +# Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. +#=============================================================================== + +set(COMPONENT_NAME "ppg_hal") + +set(PUBLIC_HEADER +${CMAKE_CURRENT_SOURCE_DIR} +) + +set(SOURCES +${CMAKE_CURRENT_SOURCE_DIR}/ppg_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() diff --git a/code/sdk/zhihui/drivers/ppg/hal/ppg_hal.c b/code/sdk/zhihui/drivers/ppg/hal/ppg_hal.c new file mode 100644 index 000000000..a123a3aa3 --- /dev/null +++ b/code/sdk/zhihui/drivers/ppg/hal/ppg_hal.c @@ -0,0 +1,195 @@ +/* + * @Author: penglei 1624952103@qq.com + * @Date: 2024-03-13 15:08:38 + * @LastEditors: penglei 1624952103@qq.com + * @LastEditTime: 2025-05-16 18:45:57 + * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c + * @Description: + * + * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. + */ + +#include +#include +#include +#include +#include +#include "ppg_hal.h" +#include "pinctrl_porting.h" +#include "hal_gpio.h" +#include "pm_control.h" + + +#include "custom_utils.h" + + +#ifdef PPG_HX3695 +#include "tyhx_hrs_custom.h" +#include "hx3695.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 心率等电源控制脚 +#define GPIO_PIN_PRG_LED_ON S_AGPIO_R0 + +void ppg_power_on(void) +{ +#ifdef PPG_HX3695 + 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_pin_set_mode(GPIO_PIN_PRG_LED_ON, (pin_mode_t)HAL_PIO_FUNC_GPIO); + 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 + 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_pin_set_mode(GPIO_PIN_PRG_LED_ON, (pin_mode_t)HAL_PIO_FUNC_GPIO); + 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; +#ifdef PPG_HX3695 + hrs = hx3695_get_hrs(); + // printf("ppg_get_hrs : %d\n",hrs); +#endif + return hrs; +} + +uint8_t ppg_get_spo2(void) +{ + uint8_t spo2 = 0; +#ifdef PPG_HX3695 + spo2 = hx3695_get_spo2(); +#endif + return spo2; +} + +uint8_t ppg_get_wear_status(void) +{ + uint8_t wear_status = 0; +#ifdef PPG_HX3695 + wear_status = hx3695_get_wear_status(); +#endif + return wear_status; +} + +uint8_t ppg_get_chip_id(void) +{ + uint8_t chip_id = 0; +#ifdef PPG_HX3695 + chip_id = hx3695_chip_check(); +#endif + return chip_id; +} + +void ppg_wear_timer_handler(void) +{ + // printf("ppg_wear_timer_handler\n"); +#ifdef PPG_HX3695 + wear_mode_timeout_handler(NULL); +#endif +} + +void ppg_hrs_timer_handler(void) +{ + // printf("ppg_hrs_timer_handler\n"); +#ifdef PPG_HX3695 + heart_rate_meas_timeout_handler(NULL); +#endif +} + +void ppg_agc_timer_handler(void) +{ + // printf("ppg_agc_timer_handler\n"); +#ifdef PPG_HX3695 + agc_timeout_handler(NULL); +#endif +} + + +void ppg_send_cmd_to_driver(char* mode, uint8_t enable) +{ + // 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(); +#endif + } + else{ +#ifdef HRS_ALG_LIB + hx3695_hrs_disable(); +#endif + } + uapi_pm_control(PM_APP_WAKE_NONEED); + ppg_power_off(); + } +#endif +} \ No newline at end of file diff --git a/code/sdk/zhihui/drivers/ppg/hal/ppg_hal.h b/code/sdk/zhihui/drivers/ppg/hal/ppg_hal.h new file mode 100644 index 000000000..5e1931247 --- /dev/null +++ b/code/sdk/zhihui/drivers/ppg/hal/ppg_hal.h @@ -0,0 +1,55 @@ +/* + * @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 + * @Description: + * + * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. + */ +#ifndef PPG_HAL_H__ +#define PPG_HAL_H__ +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif /* __cplusplus */ +#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 +#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); +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); + +#ifdef __cplusplus +#if __cplusplus +} +#endif /* __cplusplus */ +#endif /* __cplusplus */ + +#endif \ No newline at end of file diff --git a/code/sdk/zhihui/drivers/ppg/hx3695/CMakeLists.txt b/code/sdk/zhihui/drivers/ppg/hx3695/CMakeLists.txt index c55141c0d..c11b318b8 100644 --- a/code/sdk/zhihui/drivers/ppg/hx3695/CMakeLists.txt +++ b/code/sdk/zhihui/drivers/ppg/hx3695/CMakeLists.txt @@ -12,7 +12,7 @@ set(SOURCES ${SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/hx3695_hrs_agc.c ${CMAKE_CURRENT_SOURCE_DIR}/hx3695_hrv_agc.c ${CMAKE_CURRENT_SOURCE_DIR}/hx3695_spo2_agc.c - ${CMAKE_CURRENT_SOURCE_DIR}/hx3695_hal.c + #${CMAKE_CURRENT_SOURCE_DIR}/hx3695_hal.c ${CMAKE_CURRENT_SOURCE_DIR}/hx3695_hrs_custom.c ) set(PUBLIC_HEADER diff --git a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c index 224305c94..410bd63b8 100644 --- a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c +++ b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c @@ -32,10 +32,15 @@ // #include "lv_dev.h" // #include "app_task.h" +#ifdef SUPPORT_CYWEE_SERVICE #include "cywee_hal.h" #include "cywee_service.h" #include "custom_utils.h" #include "custom_runtime.h" +#endif + +#include "ppg_hal.h" + FT_CUSTOM_RESULTS_t hrsresult ={0}; @@ -43,7 +48,9 @@ int16_t gsen_fifo_x[64]={0}; int16_t gsen_fifo_y[64]={0}; int16_t gsen_fifo_z[64]={0}; +#ifdef SUPPORT_CYWEE_SERVICE gsenson_t gsensordata[32]; +#endif static uint8_t msg_count = 0; @@ -125,9 +132,10 @@ uint8_t alg_ram[11 * 1024] __attribute__((aligned(4))); //uint8_t alg_ram[10] = {0}; ppg_sensor_data_t ppg_s_data; -static int cywee_data = 0; +static uint8_t hrs_result = 0; static int history_wear_status = -1; -static int cywee_wear_status = 0; +static uint8_t wear_status = 0; +static uint8_t spo2_result = 0; static uint8_t hx3695_chip_id = 0; @@ -364,7 +372,7 @@ void hx3695_gpioint_cfg(bool en) } #endif -bool hx3695_chip_check(void) +uint8_t hx3695_chip_check(void) { uint8_t i = 0; uint8_t chip_id = 0; @@ -380,13 +388,13 @@ bool hx3695_chip_check(void) //printf("hx3695_chip_check ok chip_id: 0x%x \r\n",chip_id); //Efuse_Mode_Check(); hx3695_chip_id = chip_id; - return true; + // return hx3695_chip_id; } } - printf(" hx3695_chip_check fail! chip_id: 0x%x \r\n", chip_id); + printf(" hx3695 chip_id: 0x%x \r\n", chip_id); - return false; + return chip_id; } void hx3695_get_id(uint8_t *ppg_id) @@ -2237,7 +2245,7 @@ void hx3695_check_touch_init(void) // // 初始化调用入口函数 bool hx3695_init(WORK_MODE_T mode) { - hx3695_msg_callback_t func; + // hx3695_msg_callback_t func; //TYHX_LOG("this chip hx3695_init mode: %d !! \r\n", mode); @@ -2328,11 +2336,11 @@ bool hx3695_init(WORK_MODE_T mode) //TYHX_LOG(" hx3695_init mode : LEAK_LIGHT_MODE \n"); hx3695_factroy_test(LEAK_LIGHT_TEST); - func = hx3695_get_send_msg_callback_func(); - if(func != NULL) - { - func(HX3695_MSG_TYPE_LEAKLIGHT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); - } + // func = hx3695_get_send_msg_callback_func(); + // if(func != NULL) + // { + // func(HX3695_MSG_TYPE_LEAKLIGHT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); + // } break; case FT_GRAY_CARD_MODE: @@ -2344,11 +2352,11 @@ bool hx3695_init(WORK_MODE_T mode) //TYHX_LOG(" hx3695_init mode : GRAY_CARD_MODE \n"); hx3695_factroy_test(GRAY_CARD_TEST); - func = hx3695_get_send_msg_callback_func(); - if(func != NULL) - { - func(HX3695_MSG_TYPE_GRAYCARD_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); - } + // func = hx3695_get_send_msg_callback_func(); + // if(func != NULL) + // { + // func(HX3695_MSG_TYPE_GRAYCARD_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); + // } break; case FT_INT_TEST_MODE: @@ -2715,6 +2723,22 @@ static void get_avg_hrs(int32_t hrs) } } +uint8_t hx3695_get_hrs(void) +{ + return hrs_result; +} + +uint8_t hx3695_get_spo2(void) +{ + return spo2_result; +} + + +uint8_t hx3695_get_wear_status(void) +{ + return wear_status; +} + void hx3695_set_hrs_ble_swtich(uint8_t cmd) { hrs_ble_falg = cmd; @@ -2729,34 +2753,35 @@ uint8_t hx3695_get_hrs_ble_swtich(void) void hx3695_wearstatus_update(void) { - if(history_wear_status != cywee_wear_status) + if(history_wear_status != wear_status) { - history_wear_status = cywee_wear_status; - cywee_data = history_wear_status; - do_cywee_service_check_msg(CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE,&cywee_data); + history_wear_status = wear_status; +#ifdef SUPPORT_CYWEE_SERVICE + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE,&wear_status); +#endif } } //脱腕上报未佩戴信息 void hx3695_unwearstatus_update(void) { - hx3695_msg_callback_t func = hx3695_get_send_msg_callback_func(); - if(func != NULL && !uapi_dev_runtime_get_train_status()) - { - hrsresult.lastesthrs = 0; - hrsresult.wearstatus = 0; - //为了主界面脱腕灵敏;需要增加未佩戴 - func(HX3695_MSG_TYPE_HRS_UPDATE, &hrsresult, sizeof(FT_CUSTOM_RESULTS_t)); - func(HX3695_MSG_TYPE_WEARSTAT_UPDATE, &hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); - func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); - func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); - } + // hx3695_msg_callback_t func = hx3695_get_send_msg_callback_func(); + // if(func != NULL && !uapi_dev_runtime_get_train_status()) + // { + // hrsresult.lastesthrs = 0; + // hrsresult.wearstatus = 0; + // //为了主界面脱腕灵敏;需要增加未佩戴 + // func(HX3695_MSG_TYPE_HRS_UPDATE, &hrsresult, sizeof(FT_CUSTOM_RESULTS_t)); + // func(HX3695_MSG_TYPE_WEARSTAT_UPDATE, &hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); + // func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); + // func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); + // } if(uapi_dev_runtime_get_train_status()) { - cywee_wear_status = 0; + wear_status = 0; hx3695_wearstatus_update(); - cywee_data = 0; - do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_CHANGE,&cywee_data); + hrs_result = 0; + } } @@ -2843,6 +2868,7 @@ void hx3695_hrs_ppg_Int_handle(void) // { // return; // } + #ifdef SUPPORT_CYWEE_SERVICE memset(gsensordata,0.0f,sizeof(gsenson_t) * *count); gsensor_get_n_data(*count,gsensordata); @@ -2914,6 +2940,7 @@ void hx3695_hrs_ppg_Int_handle(void) //PRINT("hxdata:%d/%d %d %d %.3f %.3f %.3f %d\r\n" ,1+ii,*count,PPG_buf[ii],ir_buf[0],gsensordata[ii].x,gsensordata[ii].y,gsensordata[ii].z,ppg_s_data.green_cur); } +#endif hrs_wear_status = hx3695_hrs_get_wear_status(); //PRINT("hrs_wear_status: %d !!\r\n", hrs_wear_status); @@ -2960,43 +2987,43 @@ void hx3695_hrs_ppg_Int_handle(void) { if(hrsresult.hr_living == MSG_LIVING_TRUE) { - cywee_wear_status = 1; + wear_status = 1; if(hrsresult.lastesthrs > 30 && hrsresult.lastesthrs < 220) get_avg_hrs(hrsresult.lastesthrs); } else { - cywee_wear_status = 0; + wear_status = 0; } } else { hrsresult.wearstatus = MSG_HRS_NO_WEAR; hrsresult.lastesthrs = 0; - cywee_wear_status = 0; + wear_status = 0; } - hx3695_msg_callback_t func = hx3695_get_send_msg_callback_func(); - if(func != NULL) - { - if(his_wear == hrsresult.wearstatus) - { - wear_cnt++; - if(wear_cnt >= 2 && !his_wear) //未佩戴超过2次 上报未佩戴信息 - { - func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); - wear_cnt = 0; - } - } - else - { - his_wear = hrsresult.wearstatus; - wear_cnt = 0; - } - } + // hx3695_msg_callback_t func = hx3695_get_send_msg_callback_func(); + // if(func != NULL) + // { + // if(his_wear == hrsresult.wearstatus) + // { + // wear_cnt++; + // if(wear_cnt >= 2 && !his_wear) //未佩戴超过2次 上报未佩戴信息 + // { + // func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); + // wear_cnt = 0; + // } + // } + // else + // { + // his_wear = hrsresult.wearstatus; + // wear_cnt = 0; + // } + // } //PRINT("hrsresult.wearstatus : %d , his_wear : %d , wear_cnt : %d \n",hrsresult.wearstatus,his_wear,wear_cnt); - // PRINT("hrsresult.wearstatus : %d , cywee_wear_status : %d , hr_living : %d \n",hrsresult.wearstatus,cywee_wear_status,hrsresult.hr_living); + // PRINT("hrsresult.wearstatus : %d , wear_status : %d , hr_living : %d \n",hrsresult.wearstatus,wear_status,hrsresult.hr_living); // if(hrs_wear_status == MSG_HRS_WEAR && hrsresult.hr_living == MSG_LIVING_TRUE) // { // if(hrsresult.lastesthrs > 30 && hrsresult.lastesthrs < 220) @@ -3010,25 +3037,28 @@ void hx3695_hrs_ppg_Int_handle(void) // hrsresult.lastesthrs = 0; // } + // PRINT("hrs : %d , wear_status : %d \n",hrsresult.lastesthrs,hrsresult.wearstatus); + hrs_result = hrsresult.lastesthrs; + msg_count++; if(msg_count >= 3) { msg_count = 0; - if(func != NULL) - { - //PRINT("hrsresult.lastesthrs : %d \n",hrsresult.lastesthrs); - func(HX3695_MSG_TYPE_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); - if(uapi_get_cywee_static_state()) - { - func(HX3695_MSG_TYPE_STATIC_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); - } - } + // if(func != NULL) + // { + // //PRINT("hrsresult.lastesthrs : %d \n",hrsresult.lastesthrs); + // func(HX3695_MSG_TYPE_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); + // if(uapi_get_cywee_static_state()) + // { + // func(HX3695_MSG_TYPE_STATIC_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); + // } + // } if(uapi_dev_runtime_get_train_status()) { hx3695_wearstatus_update(); - cywee_data = hrsresult.lastesthrs; - do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_CHANGE,&cywee_data); + // hrs_result = hrsresult.lastesthrs; + // do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_CHANGE,&cywee_data); } } @@ -3498,7 +3528,7 @@ void hx3695_spo2_ppg_Int_handle(void) DEBUG_PRINTF("block_cnt: %d, data_cnt:%d, hr_result:%d,ir_quality:%d,motion:%d,poor_signal:%d,reliable_score_result:%d,screen_up:%d,spo2_result:%d\r\n",spo2_alg_results.block_cnt,spo2_alg_results.data_cnt,spo2_alg_results.hr_result,spo2_alg_results.ir_quality,spo2_alg_results.motion,spo2_alg_results.poor_signal,spo2_alg_results.reliable_score_result,spo2_alg_results.screen_up,spo2_alg_results.spo2_result); hrsresult.lastestspo2 = spo2_alg_results.spo2_result; - + spo2_result = hrsresult.lastestspo2; // if(hrsresult.lastestspo2) { // store_latest_spo2(hrsresult.lastestspo2); @@ -3507,13 +3537,13 @@ void hx3695_spo2_ppg_Int_handle(void) // hr_sensor_notify_factory_test(); } - hx3695_msg_callback_t func = hx3695_get_send_msg_callback_func(); - if(func != NULL) - { - hrsresult.wearstatus = spo2_wear_status; - func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); - func(HX3695_MSG_TYPE_SPO2_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); - } + // hx3695_msg_callback_t func = hx3695_get_send_msg_callback_func(); + // if(func != NULL) + // { + // hrsresult.wearstatus = spo2_wear_status; + // func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); + // func(HX3695_MSG_TYPE_SPO2_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t)); + // } @@ -3790,7 +3820,7 @@ void hx3695_wear_ppg_Int_handle(void) hx3695_wear_msg_code_t hx3695_wear_status; hx3695_check_touch_read(&ppg_s_data); - cywee_wear_status = hx3695_check_touch_send_data(ir_buf,*count); + wear_status = hx3695_check_touch_send_data(ir_buf,*count); hx3695_wearstatus_update(); extern uint8_t notouch_cnt; extern uint8_t touch_cnt; diff --git a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.h b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.h index 228abb14b..6ceb1a220 100644 --- a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.h +++ b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.h @@ -245,7 +245,7 @@ void hx3695_delay_ms(uint32_t ms); bool hx3695_write_reg(uint8_t addr, uint8_t data); uint8_t hx3695_read_reg(uint8_t addr); bool hx3695_brust_read_reg(uint8_t addr , uint8_t *buf, uint16_t length); -bool hx3695_chip_check(void); +uint8_t hx3695_chip_check(void); void hx3695_get_id(uint8_t *ppg_id); uint8_t hx3695_read_fifo_size(void); uint16_t hx3695_read_fifo_data(int32_t *s_buf, uint8_t size, uint8_t phase_num); @@ -301,6 +301,8 @@ void hx3695_wearstatus_update(void); void hx3695_unwearstatus_update(void); void hx3695_set_hrs_ble_swtich(uint8_t cmd); uint8_t hx3695_get_hrs_ble_swtich(void); -#include "hx3695_hal.h" +uint8_t hx3695_get_hrs(void); +uint8_t hx3695_get_spo2(void); +uint8_t hx3695_get_wear_status(void); #endif diff --git a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_check_touch.c b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_check_touch.c index 09e9a466d..dd10f20ff 100644 --- a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_check_touch.c +++ b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_check_touch.c @@ -9,7 +9,9 @@ #include "hx3695.h" #include "hx3695_check_touch.h" #include "hx3695_hrs_agc.h" +#ifdef SUPPORT_CYWEE_SERVICE #include "cywee_hal.h" +#endif hx3695_wear_msg_code_t hx3695_wear_status = MSG_NO_WEAR; hx3695_wear_msg_code_t hx3695_wear_status_pre = MSG_NO_WEAR; diff --git a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_hal.c b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_hal.c index 4bad4134c..038259e74 100644 --- a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_hal.c +++ b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_hal.c @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: 2024-03-13 15:08:38 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2024-11-19 19:40:35 + * @LastEditTime: 2025-05-15 17:02:49 * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c * @Description: * @@ -65,7 +65,7 @@ void ppg_send_cmd_to_driver(char* mode, uint8_t enable) if (enable == 1 || md == FT_LED_OFF_MODE) { // ppg_service_running_stat = true; - uapi_pm_control(PM_APP_WAKE_NEEDED); + // uapi_pm_control(PM_APP_WAKE_NEEDED); tyhx_poweron(); //custom_i2c_reset(); hx3695_init(md); @@ -100,7 +100,7 @@ void ppg_send_cmd_to_driver(char* mode, uint8_t enable) hx3695_hrs_disable(); #endif } - uapi_pm_control(PM_APP_WAKE_NONEED); + // uapi_pm_control(PM_APP_WAKE_NONEED); tyhx_poweroff(); } } \ No newline at end of file diff --git a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_hrs_custom.c b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_hrs_custom.c index c78766d96..5b86f238a 100644 --- a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_hrs_custom.c +++ b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_hrs_custom.c @@ -116,34 +116,5 @@ bool tyhx_timer_stop(uint32_t ms) return 1; } -// S_AGPIO_L26 心率复位 PPG reset -#define GPIO_PIN_PRG_RESET S_AGPIO_L26 -// S_AGPIO_R0 PRG_LED_POWER ON 心率等电源控制脚 -#define GPIO_PIN_PRG_LED_ON S_AGPIO_R0 - -uint32_t tyhx_poweron(void) -{ - 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_pin_set_mode(GPIO_PIN_PRG_LED_ON, (pin_mode_t)HAL_PIO_FUNC_GPIO); - uapi_gpio_set_dir(GPIO_PIN_PRG_LED_ON, GPIO_DIRECTION_OUTPUT); - uapi_gpio_set_val(GPIO_PIN_PRG_LED_ON, GPIO_LEVEL_HIGH); - tyhx_delay_ms(100); - return 0; -} -uint32_t tyhx_poweroff(void) -{ - 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_pin_set_mode(GPIO_PIN_PRG_LED_ON, (pin_mode_t)HAL_PIO_FUNC_GPIO); - uapi_gpio_set_dir(GPIO_PIN_PRG_LED_ON, GPIO_DIRECTION_OUTPUT); - uapi_gpio_set_val(GPIO_PIN_PRG_LED_ON, GPIO_LEVEL_LOW); - tyhx_delay_ms(50); - return 0; -} diff --git a/code/sdk/zhihui/drivers/ppg/service/ppg_at_cmd.h b/code/sdk/zhihui/drivers/ppg/service/ppg_at_cmd.h index a2906e2dc..876828dea 100644 --- a/code/sdk/zhihui/drivers/ppg/service/ppg_at_cmd.h +++ b/code/sdk/zhihui/drivers/ppg/service/ppg_at_cmd.h @@ -6,8 +6,8 @@ * History: \n * 2022-07-20, Create file. \n */ -#ifndef HX3695_AT_PROCESS_H -#define HX3695_AT_PROCESS_H +#ifndef PPG_AT_PROCESS_H +#define PPG_AT_PROCESS_H #include #include diff --git a/code/sdk/zhihui/drivers/ppg/service/ppg_service.cpp b/code/sdk/zhihui/drivers/ppg/service/ppg_service.cpp index 72492c79b..941901604 100644 --- a/code/sdk/zhihui/drivers/ppg/service/ppg_service.cpp +++ b/code/sdk/zhihui/drivers/ppg/service/ppg_service.cpp @@ -45,6 +45,11 @@ extern "C" { #include "thread_init.h" #include "custom_utils.h" #include "custom_save_runtime.h" +#include "ppg_hal.h" + +// #ifdef PPG_HX3695 +// #include "hx3695.h" +// #endif #if defined(PPG_VC9202) #include "vc9202_hal.h" @@ -56,8 +61,6 @@ extern "C" { #include "gh3x2x_hal.h" #include "gh3x2x_afe_drv.h" #else -#include "hx3695_hal.h" -#include "hx3695.h" #endif static bool g_ppg_service_initialled = false; @@ -97,7 +100,7 @@ void set_keep_in_wear_det_mode(uint8_t mod) errcode_t update_leaklight_event_notify(uint8_t *data) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "send lightdata to ui %s",data); - CustomEventPublish(TOPIC_EVENT_LEAKLIGHT_UPDATA,(uint8_t*)data,strlen((char*)data)); + //CustomEventPublish(TOPIC_EVENT_LEAKLIGHT_UPDATA,(uint8_t*)data,strlen((char*)data)); return 0; } errcode_t update_leaklight_event_sendmsg_toUI(uint8_t *data) @@ -112,7 +115,7 @@ errcode_t update_leaklight_event_sendmsg_toUI(uint8_t *data) errcode_t update_graycard_event_notify(uint8_t *data) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "send carddata to ui %s",data); - CustomEventPublish(TOPIC_EVENT_GRAYCARD_UPDATA,(uint8_t*)data,strlen((char*)data)); + //CustomEventPublish(TOPIC_EVENT_GRAYCARD_UPDATA,(uint8_t*)data,strlen((char*)data)); return 0; } errcode_t update_graycard_event_sendmsg_toUI(uint8_t *data) @@ -126,7 +129,7 @@ errcode_t update_graycard_event_sendmsg_toUI(uint8_t *data) //血氧 errcode_t update_spo2_event_notify(uint8_t spo2) { - CustomEventPublish(TOPIC_EVENT_SPO2_UPDATE,(uint8_t*)&spo2,sizeof(spo2)); + //CustomEventPublish(TOPIC_EVENT_SPO2_UPDATE,(uint8_t*)&spo2,sizeof(spo2)); return 0; } errcode_t update_spo2_event_sendmsg_toUI(uint8_t spo2) @@ -139,7 +142,7 @@ errcode_t update_spo2_event_sendmsg_toUI(uint8_t spo2) //心率 errcode_t update_hrs_event_notify(uint8_t hrs) { - CustomEventPublish(TOPIC_EVENT_HEARTRATE_UPDATA,(uint8_t*)&hrs,sizeof(hrs)); + //CustomEventPublish(TOPIC_EVENT_HEARTRATE_UPDATA,(uint8_t*)&hrs,sizeof(hrs)); return 0; } errcode_t update_hrs_event_sendmsg_toUI(uint8_t hrs) @@ -153,7 +156,7 @@ errcode_t update_hrs_event_sendmsg_toUI(uint8_t hrs) //穿戴状态 errcode_t update_wearstatus_event_notify(int32_t wearstatus) { - CustomEventPublish(TOPIC_EVENT_WEARSTATE_UPDATE,(uint8_t*)&wearstatus,sizeof(wearstatus)); + //CustomEventPublish(TOPIC_EVENT_WEARSTATE_UPDATE,(uint8_t*)&wearstatus,sizeof(wearstatus)); return 0; } errcode_t update_wearstatus_event_sendmsg_toUI(int32_t wearstatus) @@ -166,7 +169,7 @@ errcode_t update_wearstatus_event_sendmsg_toUI(int32_t wearstatus) //静息心率 errcode_t update_static_hrs_event_notify(int32_t hrs) { - CustomEventPublish(TOPIC_EVENT_STATIC_HEARTRATE_UPDATA,(uint8_t*)&hrs,sizeof(hrs)); + //CustomEventPublish(TOPIC_EVENT_STATIC_HEARTRATE_UPDATA,(uint8_t*)&hrs,sizeof(hrs)); return 0; } errcode_t update_static_hrs_event_sendmsg_toUI(int32_t hrs) @@ -176,10 +179,10 @@ errcode_t update_static_hrs_event_sendmsg_toUI(int32_t hrs) return ERRCODE_SUCC; } -#include "hx3695_hal.h" -#include "hx3695.h" + void hx3695_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen) { +#if 0 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "hx3695_msg_callback"); FT_CUSTOM_RESULTS_t sensor_data; // 使用更通用的名称 sensor_data #if 1 @@ -233,6 +236,7 @@ void hx3695_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datale WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Unknown sensor message type"); break; } +#endif } #endif @@ -258,6 +262,8 @@ errcode_t send_ppg_cmd_msg(int cmd) if (ppg_sensor_exist == false) return OSAL_FAILURE; + // printf("send_ppg_cmd_msg cmd : 0x%x\n",cmd); + PPG_CMD_TYPE_T mail = 0; mail = cmd; ret = osal_msg_queue_write_copy(g_app_queue, (void *)&mail, @@ -283,7 +289,7 @@ static void ppg_service_check_task(void *arg) } if((wear_mode_state == 1) && (mail > 0x10) && mail != PPG_SERVICE_CMD_TYPE_STOP_WEAR_MODE_TEST) { - uapi_save_runtime_log(RUNTIME_LOG_WEAR_MIN_STOP); + // uapi_save_runtime_log(RUNTIME_LOG_WEAR_MIN_STOP); wear_mode_state = 0; #ifdef PPG_HX3695 ppg_send_cmd_to_driver("wear",0); @@ -293,23 +299,26 @@ static void ppg_service_check_task(void *arg) char* cmd = "hrs"; int enable = 1; if (mail == PPG_SERVICE_CMD_TYPE_DO_PPG_320TIMER_CALLBACK){ -#ifdef PPG_HX3695 - heart_rate_meas_timeout_handler(NULL); -#endif +// #ifdef PPG_HX3695 +// heart_rate_meas_timeout_handler(NULL); +// #endif + ppg_hrs_timer_handler(); continue; }else if (mail == PPG_SERVICE_CMD_TYPE_DO_PPG_40TIMER_CALLBACK){ -#ifdef PPG_HX3695 - agc_timeout_handler(NULL); -#endif +// #ifdef PPG_HX3695 +// agc_timeout_handler(NULL); +// #endif + ppg_agc_timer_handler(); continue; }else if(mail == PPG_SERVICE_CMD_TYPE_DO_WEAR_MODE_5000TIMER_CALLBACK){ -#ifdef PPG_HX3695 - wear_mode_timeout_handler(NULL); -#endif +// #ifdef PPG_HX3695 +// wear_mode_timeout_handler(NULL); +// #endif + ppg_wear_timer_handler(); continue; }else if (mail == PPG_SERVICE_CMD_TYPE_DO_PPG_TEST){ //do_cywee_service_check_msg(CYWEE_SERVICE_CMD_OPEN_GET_ACC,NULL); - uapi_save_runtime_log(RUNTIME_LOG_HEART_DRIVER_MEASURE); + // uapi_save_runtime_log(RUNTIME_LOG_HEART_DRIVER_MEASURE); cmd = "hrs"; enable = 1; // uint8_t cnt = pm_veto_get_id_cnt(PM_ID_HEART); @@ -332,7 +341,7 @@ static void ppg_service_check_task(void *arg) enable = 1; }else if (mail == PPG_SERVICE_CMD_TYPE_DO_WEAR_MODE_TEST){ if (keep_in_wear_det_mod == 0) continue;; - uapi_save_runtime_log(RUNTIME_LOG_WEAR_MIN_START); + // uapi_save_runtime_log(RUNTIME_LOG_WEAR_MIN_START); cmd = "wear"; enable = 1; wear_mode_state = 1; @@ -348,7 +357,7 @@ static void ppg_service_check_task(void *arg) enable = 0; wear_mode_state = 0; }else if (mail == PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST){ - uapi_save_runtime_log(RUNTIME_LOG_HEART_DRIVER_MEASURE_END); + // uapi_save_runtime_log(RUNTIME_LOG_HEART_DRIVER_MEASURE_END); cmd = "hrs"; enable = 0; // uint8_t cnt = pm_veto_get_id_cnt(PM_ID_HEART); @@ -364,14 +373,14 @@ static void ppg_service_check_task(void *arg) else if (mail == PPG_SERVICE_CMD_TYPE_OPEN_HRS_BLE) { #ifdef PPG_HX3695 - hx3695_set_hrs_ble_swtich(1); + // hx3695_set_hrs_ble_swtich(1); #endif continue ; } else if (mail == PPG_SERVICE_CMD_TYPE_CLOSE_HRS_BLE) { #ifdef PPG_HX3695 - hx3695_set_hrs_ble_swtich(0); + // hx3695_set_hrs_ble_swtich(0); #endif continue ; }else if (mail == PPG_SERVICE_CMD_TYPE_INT_HANDLER){ @@ -409,7 +418,9 @@ static void ppg_service_check_task(void *arg) continue ; } -#ifdef PPG_VC9202 +#ifdef PPG_HX3695 + ppg_send_cmd_to_driver(cmd,enable); +#elif defined (PPG_VC9202) ppg_send_cmd_to_vc9202_driver(cmd,enable); #elif defined(PPG_VC921X) ppg_send_cmd_to_vc921x_driver(cmd,enable); @@ -447,42 +458,19 @@ void create_ppg_queue(void) } errcode_t uapi_ppg_service_init(void) { - - PRINT("uapi_ppg_service_init !\r\n"); - tyhx_poweron(); - -#ifdef PPG_HX3695 + ppg_power_on(); - if ( hx3695_chip_check() == false) - { - //TODO 没找到3695,退出线程 - PRINT("3695 not exist!\r\n"); - tyhx_poweroff(); - return ERRCODE_FAIL; - } - hx3695_register_msg_callback(hx3695_msg_callback);//注册驱动回调 - // //ppg_send_cmd_to_driver("wear",0); -#elif defined(PPG_VC9202) - if ( vc9202_drv_get_chip_id() != 0x21) + if (ppg_get_chip_id() != PPG_CHIP_ID) { //TODO 没找到3695,退出线程 - PRINT("PPG_VC9202 not exist!\r\n"); - tyhx_poweroff(); + PRINT("ppg not exist!\r\n"); + ppg_power_off(); return ERRCODE_FAIL; } -#elif defined(PPG_GH3X2X) - if (GH3X2X_AFE_CheckChipId() != 0) - { - //TODO 没找到3695,退出线程 - PRINT("PPG_GH3X2X not exist!\r\n"); - tyhx_poweroff(); - return ERRCODE_FAIL; - } -#endif - tyhx_poweroff(); + ppg_power_off(); ppg_sensor_exist = true; @@ -525,7 +513,6 @@ void ppg_int_callback(pin_t pin, uintptr_t param) // DEBUG_PRINTF("ppg_service_service suspend!\r\n"); // } - #ifdef __cplusplus #if __cplusplus } diff --git a/code/sdk/zhihui/drivers/ppg/vc9202/src/vc9202_hal.c b/code/sdk/zhihui/drivers/ppg/vc9202/src/vc9202_hal.c index 5e2d2341f..815e80656 100644 --- a/code/sdk/zhihui/drivers/ppg/vc9202/src/vc9202_hal.c +++ b/code/sdk/zhihui/drivers/ppg/vc9202/src/vc9202_hal.c @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: 2024-03-13 15:08:38 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2024-12-24 10:25:14 + * @LastEditTime: 2025-05-15 17:15:13 * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c * @Description: * @@ -26,10 +26,6 @@ #endif #ifdef PPG_HX3695 -#include "tyhx_hrs_custom.h" -#include "hx3695.h" -#include "hx3695_hal.h" -#include "hx3695.h" hx3695_msg_callback_t g_send_msg_toUI = NULL; @@ -156,7 +152,7 @@ void ppg_send_cmd_to_vc9202_driver(char* mode, uint8_t enable) #endif { // ppg_service_running_stat = true; - uapi_pm_control(PM_APP_WAKE_NEEDED); + // uapi_pm_control(PM_APP_WAKE_NEEDED); tyhx_poweron(); #ifdef PPG_HX3695 hx3695_init(md); @@ -205,7 +201,7 @@ void ppg_send_cmd_to_vc9202_driver(char* mode, uint8_t enable) #endif - uapi_pm_control(PM_APP_WAKE_NONEED); + // uapi_pm_control(PM_APP_WAKE_NONEED); tyhx_poweroff(); } } \ No newline at end of file diff --git a/code/sdk/zhihui/drivers/ppg/vc921x/src/vc921x_hal.c b/code/sdk/zhihui/drivers/ppg/vc921x/src/vc921x_hal.c index 477d9eee4..648fb7eef 100644 --- a/code/sdk/zhihui/drivers/ppg/vc921x/src/vc921x_hal.c +++ b/code/sdk/zhihui/drivers/ppg/vc921x/src/vc921x_hal.c @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: 2024-03-13 15:08:38 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2024-12-16 16:40:25 + * @LastEditTime: 2025-05-15 11:56:40 * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c * @Description: * @@ -51,7 +51,7 @@ void ppg_send_cmd_to_vc921x_driver(char* mode, uint8_t enable) if (enable == 1) { // ppg_service_running_stat = true; - uapi_pm_control(PM_APP_WAKE_NEEDED); + // uapi_pm_control(PM_APP_WAKE_NEEDED); tyhx_poweron(); vc921x_device = get_vc921x_device(); @@ -68,7 +68,7 @@ void ppg_send_cmd_to_vc921x_driver(char* mode, uint8_t enable) } else { - uapi_pm_control(PM_APP_WAKE_NONEED); + // uapi_pm_control(PM_APP_WAKE_NONEED); vc921x_device->ops->stop_work(); tyhx_poweroff(); } diff --git a/code/sdk/zhihui/drivers/rotary_encoder/hx3507/hx3507_at_cmd.h b/code/sdk/zhihui/drivers/rotary_encoder/hx3507/hx3507_at_cmd.h index cb7de8558..8af3fdc7e 100644 --- a/code/sdk/zhihui/drivers/rotary_encoder/hx3507/hx3507_at_cmd.h +++ b/code/sdk/zhihui/drivers/rotary_encoder/hx3507/hx3507_at_cmd.h @@ -1,3 +1,11 @@ +/* + * @Author: penglei 1624952103@qq.com + * @Date: 2025-05-15 11:28:07 + * @LastEditors: penglei 1624952103@qq.com + * @LastEditTime: 2025-05-19 10:28:18 + * @FilePath: /FD230/code/sdk/zhihui/drivers/rotary_encoder/hx3507/hx3507_at_cmd.h + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ /** * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n * @@ -21,7 +29,7 @@ extern "C" { #endif /* __cplusplus */ #endif /* __cplusplus */ -at_cmd_table_t *get_mmc5603_cmd_table(uint32_t *cmd_count); +at_cmd_table_t *get_hx3507_cmd_table(uint32_t *cmd_count); #ifdef __cplusplus #if __cplusplus diff --git a/code/sdk/zhihui/services/battery/service/battery_service.cpp b/code/sdk/zhihui/services/battery/service/battery_service.cpp index 929b9f736..eac110b02 100644 --- a/code/sdk/zhihui/services/battery/service/battery_service.cpp +++ b/code/sdk/zhihui/services/battery/service/battery_service.cpp @@ -67,6 +67,7 @@ errcode_t uapi_battery_init(void); #include "button_porting.h" #include "battery_service.h" +#include "custom_utils.h" /** * 临时性去除充电禁止能力,待海思更新 充电线静态检测能力再回复。 @@ -142,6 +143,93 @@ void battery_file_check(BATTERY_DATA_T newStruct, const char *filename) fclose(fp); } + +void battery_get_data_t(BATTERY_DATA_T **data,uint16_t *length) +{ + if(!len) + return; + *length = len; + *data = (BATTERY_DATA_T *)malloc(len); + + if(*data == NULL) + return; + + memcpy_s(*data,len,bat_t,len); + free(bat_t); +} + +void battery_get_data(void) +{ + len = uapi_get_file_size(BAT_FILE_PATH); + if(!len) + return; + + bat_t = (BATTERY_DATA_T *)malloc(len); + if(bat_t == NULL) + return; + + FILE *fp; + + fp = fopen(BAT_FILE_PATH, "rb"); + if (fp == NULL) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bat_data file open failed"); + free(bat_t); + return; + } + + if(fread(bat_t, 1, len, fp) != len) + { + free(bat_t); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bat_data file read failed"); + } + fclose(fp); +} + +//保存电池信息到文件 +void battery_save_data(void) +{ + // len = uapi_get_file_size("/user/userdata/battery_data.bin"); + // if(len > sizeof(BATTERY_DATA_T) * 24 * 7) + // { + // uapi_delete_files("/user/userdata/battery_data.bin"); + // } + + BATTERY_DATA_T data; + float voltage; + uint8_t percent = batteryservice_get_voltage(&voltage); + data.voltage = voltage; + data.percent = percent; + uapi_get_timestampe_ss(&data.tm); + data.stat = get_charge_stat(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "data.voltage : %f , data[i].percent : %d tm : %d",data.voltage,data.percent,data.tm); + // uapi_save_file_data("user/userdata/battery_data.bin",(uint8_t *)&data,sizeof(BATTERY_DATA_T),"ab"); + battery_file_check(data,BAT_FILE_PATH); + // uapi_save_file_data("/user/userdata/battery.bin",&percent,1,"wb"); +} + +//保存电量到文件 +static void battery_save_percent(void) +{ + float voltage; + uint8_t percent = batteryservice_get_voltage(&voltage); + uapi_save_file_data("/user/userdata/battery.bin",&percent,1,"wb"); + PRINT("battery_save_percent : %d",percent); +} + +//从文件中读取电量 +uint8_t battery_get_percent_onstart(void) +{ + uint8_t percent = 0; + uint16_t len = 1; + uapi_get_file_data("/user/userdata/battery.bin",&percent,&len); + PRINT("battery_get_percent_onstart : %d",percent); + if(percent <= 100 && percent >= 0) + return percent; + else + return 0; +} + static uint32_t get_current_timestamp(void) { uint32_t timestamp = 0; diff --git a/code/sdk/zhihui/services/ble_service/bleservice/bleService.c b/code/sdk/zhihui/services/ble_service/bleservice/bleService.c index 43fe179e5..61b6682f2 100644 --- a/code/sdk/zhihui/services/ble_service/bleservice/bleService.c +++ b/code/sdk/zhihui/services/ble_service/bleservice/bleService.c @@ -47,7 +47,7 @@ extern "C" { #endif #include "ConfigModelC.h" -#ifdef SUPPORT_AT_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE #include "cywee_ble_Service.h" #endif #ifdef SUPPORT_OHOSFWK @@ -1200,7 +1200,7 @@ static void svr_ble_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid, || uuid_tmp == BLE_UUID_ATE_FACTORYTEST_SERVICE || uuid_tmp == BLE_UUID_PPG_BLE_SERVICE || uuid_tmp == ALIPAYY_SERVICE_ID -#ifdef SUPPORT_AT_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE || uuid_tmp == BLE_UUID_CYWEE_REPORT_SERVICE #endif ) @@ -1234,7 +1234,7 @@ static void svr_ble_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid, bts_data_to_uuid_len2(BLE_UUID_PPG_BLE_SERVICE, &ppg_service_uuid); -#ifdef SUPPORT_AT_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE bt_uuid_t cywee_ble_service_uuid = {0}; bts_data_to_uuid_len2(BLE_UUID_CYWEE_REPORT_SERVICE, &cywee_ble_service_uuid); @@ -1272,7 +1272,7 @@ static void svr_ble_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid, WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ppg ble service svr_ble_bt_gatts_service_add_cb ret:%d\r\n",ret); } -#ifdef SUPPORT_AT_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE if (ble_gatts_cmp_uuid(uuid, &cywee_ble_service_uuid) == true){ ble_cywee_add_characters_and_descriptors(server_id,srv_handle); ret = gatts_start_service(server_id, srv_handle); @@ -1479,7 +1479,7 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t ble_ppgtest_store_report_handle(result->value_handle); } -#ifdef SUPPORT_AT_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE bt_uuid_t cywee_report_uuid = {0}; bts_data_to_uuid_len2(BLE_UUID_CYWEE_RX, &cywee_report_uuid); @@ -1943,7 +1943,7 @@ void svr_ble_bluetooth_init(void) ble_ppgtest_server_init(g_ble_server_id); -#ifdef SUPPORT_AT_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE ble_cywee_server_init(g_ble_server_id); #endif gattc_reg_id(); @@ -2116,7 +2116,7 @@ static void blesrv_service_check_task(void const *arg) factory_recv_ota_data(p_msgbuf,msg_len,server_handle); } -#ifdef SUPPORT_AT_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE else if (server_handle == get_cywee_ate_write_handl()) { cywee_recv_cmd_data(p_msgbuf,msg_len,server_handle); diff --git a/code/sdk/zhihui/utils/custom_cmd_service.c b/code/sdk/zhihui/utils/custom_cmd_service.c index 3afdbad56..41caa6aad 100644 --- a/code/sdk/zhihui/utils/custom_cmd_service.c +++ b/code/sdk/zhihui/utils/custom_cmd_service.c @@ -43,8 +43,7 @@ void HandleUpdatelcdMode(int f){} void set_ota_upgrade(void){} void custom_timer_callback(void){} -// void Check_ble_adv_status(void){} -// void check_dial_space(void){} + int uapi_hfp_disconnect_(void){return 0;} int uapi_hfp_connect_(void){return 0;} @@ -338,7 +337,9 @@ static void custom_cmd_service_check_task(void const *arg) custom_timer_callback(); break; case CUSTOM_CMD_MSG_BLE_ADV_CHECK: +#ifdef SUPPORT_BLE_SERVICE Check_ble_adv_status(); +#endif break; case CUSTOM_CMD_MSG_CHECK_DIAL_SPACE: check_dial_space(); diff --git a/code/sdk/zhihui/utils/custom_fileoperate_service.c b/code/sdk/zhihui/utils/custom_fileoperate_service.c index 96e2f7882..2a4cd4149 100644 --- a/code/sdk/zhihui/utils/custom_fileoperate_service.c +++ b/code/sdk/zhihui/utils/custom_fileoperate_service.c @@ -46,6 +46,12 @@ extern "C" { #endif + +#ifdef FACTORYTEST_SERVICE +#include "factorytest_protocol.h" +#endif + + //进行修复开始 void repair_file_start(void){} //进行运动存储 @@ -63,13 +69,6 @@ void custom_save_nap_data(void){} //void update_sleep_data(uint32_t sleep_timestamp,uint32_t wake_timestamp,uint32_t totaltime){} //void update_nap_data(uint32_t sleep_timestamp,uint32_t wake_timestamp,uint32_t totaltime){} //void custom_read_wear_data(void){} -#ifndef FACTORYTEST_SERVICE -// void factorytest_save_aging_data(void){} -// void factorytest_read_aging_data(void){} -// // void factorytest_get_aging_data(ble_aging_t *data){} -// void factorytest_start_aging_test(void){} -// void factorytest_stop_aging_test(void){} -#endif // void stopPlayingMusic(void){} // void custom_setUpListCase(void){} @@ -204,11 +203,15 @@ static void custom_fileoperate_service_check_task(void const *arg) break; case CUSTOM_FILEOPERATE_MSG_TYPE_AGING_DATA_READ: +#ifdef FACTORYTEST_SERVICE factorytest_read_aging_data(); +#endif break; case CUSTOM_FILEOPERATE_MSG_TYPE_AGING_DATA_SAVE: +#ifdef FACTORYTEST_SERVICE factorytest_save_aging_data(); +#endif break; case CUSTOM_FILEOPERATE_MSG_TYPE_POPUP_WINDOWS_DATA_LIST: diff --git a/code/sdk/zhihui/utils/custom_utils.c b/code/sdk/zhihui/utils/custom_utils.c index df1eecdfe..6746e6891 100644 --- a/code/sdk/zhihui/utils/custom_utils.c +++ b/code/sdk/zhihui/utils/custom_utils.c @@ -86,9 +86,6 @@ void ota_updata_init(void){} #include "battery_service.h" #include "cywee_hal.h" -#include "MMC5603.h" -#include "mmc5603_hal.h" -#include "mag_service.h" #endif #ifdef SUPPORT_A5133_SERVICE #include "A5133main.h" @@ -109,6 +106,11 @@ void ota_updata_init(void){} #include "bleEvent.h" #endif + +#ifdef SUPORT_MAG_SERVICE +#include "mag_hal.h" +#endif + errcode_t uapi_create_osThread_custom(app_task_definition_t *task_cfg) { if (task_cfg==NULL) @@ -575,7 +577,7 @@ void startup_post_init_task(void) ble_SOS_data_init(); #ifdef SUPPORT_CAT1_SERVICE - up_report_timer(); + // up_report_timer(); #endif read_jsonHistory_weather(); @@ -1993,10 +1995,8 @@ void touch_getstate(void) void mmc5603_getid(unsigned char *id) { - #ifdef FD230_650 - mmc5603_poweron(); - CUSTOM_MMC5603_GETID(id); - mmc5603_poweroff(); + #ifdef SUPORT_MAG_SERVICE + *id = mag_get_chip_id(); #endif } @@ -3297,7 +3297,11 @@ uint32_t uapi_get_file_size(char *filepath) uint8_t uapi_get_cywee_static_state(void) { +#ifdef SUPPORT_CYWEE_SERVICE return cywee_get_static_state(); +#else + return 0; +#endif } #ifdef CYWEE_MAC_ACTIVE @@ -4284,3 +4288,29 @@ uint8_t calculate_lrc(uint8_t *data,uint16_t len,uint8_t _lrcValue) } return lrcValue; } + +void uapi_cat1_remove_cat1_vote(void) +{ +#ifdef SUPPORT_CAT1_SERVICE + uint8_t cnt = pm_veto_get_id_cnt(PM_ID_CAT1); + if (cnt == 1) { + uapi_pm_remove_sleep_veto(PM_ID_CAT1); + } else { + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"CAT1 SERVICE MCU has delete pm_id_cat1 vote\r\n"); + } + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"\r\nCAT1 SERVICE MCU SLEEP SUCCESS\r\n"); +#endif +} +void uapi_cat1_add_cat1_vote(void) +{ +#ifdef SUPPORT_CAT1_SERVICE + uint8_t cnt = pm_veto_get_id_cnt(PM_ID_CAT1); + if (cnt == 0) { + uapi_pm_add_sleep_veto(PM_ID_CAT1); + } else { + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"CAT1 SERVICE MCU has got pm_id_cat1 vote\r\n"); + } + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"\r\nCAT1 SERVICE MCU WAKEUP SUCCESS\r\n"); +#endif +} + \ No newline at end of file diff --git a/code/sdk/zhihui/utils/custom_utils.h b/code/sdk/zhihui/utils/custom_utils.h index 293170554..f1bf6ef42 100644 --- a/code/sdk/zhihui/utils/custom_utils.h +++ b/code/sdk/zhihui/utils/custom_utils.h @@ -451,6 +451,9 @@ uint8_t get_crc_from_lrc(uint8_t lrcValue); uint8_t calculate_lrc(uint8_t *data,uint16_t len,uint8_t _lrcValue); +void uapi_cat1_remove_cat1_vote(void); +void uapi_cat1_add_cat1_vote(void); + #include "custom_utilscpp.h" diff --git a/code/sdk/zhihui/utils/custom_utils_at_cmd.c b/code/sdk/zhihui/utils/custom_utils_at_cmd.c index f48ff0ba1..fda5e7532 100644 --- a/code/sdk/zhihui/utils/custom_utils_at_cmd.c +++ b/code/sdk/zhihui/utils/custom_utils_at_cmd.c @@ -1184,9 +1184,9 @@ static uint32_t enabledrag(uint8_t *para, uint32_t paraLen, char *strCommonCmd) uint8_t enable = atol((char*)argv[1]); #ifdef FD230_650 - enable_drag(direction,enable); - uint8_t limit=get_drag_limit(direction); - wstp_print("%s %s , current limit %d\r\n",enable==1?"enable":"disable",direction==0?"x":"y",limit); + // enable_drag(direction,enable); + // uint8_t limit=get_drag_limit(direction); + // wstp_print("%s %s , current limit %d\r\n",enable==1?"enable":"disable",direction==0?"x":"y",limit); #endif return ERRCODE_SUCC; @@ -1215,9 +1215,9 @@ static uint32_t setdraglimit(uint8_t *para, uint32_t paraLen, char *strCommonCmd uint8_t value = atol((char*)argv[1]); #ifdef FD230_650 - set_drag_limit(direction,value); - uint8_t limit=get_drag_limit(direction); - wstp_print("set drag %s limit %d (current limit %d) \r\n",direction==0?"x":"y",value,limit); + // set_drag_limit(direction,value); + // uint8_t limit=get_drag_limit(direction); + // wstp_print("set drag %s limit %d (current limit %d) \r\n",direction==0?"x":"y",value,limit); #endif return ERRCODE_SUCC; diff --git a/code/sdk/zhihui/utilscpp/custom_utilscpp.cpp b/code/sdk/zhihui/utilscpp/custom_utilscpp.cpp index 2b9c6632d..988e82ae4 100644 --- a/code/sdk/zhihui/utilscpp/custom_utilscpp.cpp +++ b/code/sdk/zhihui/utilscpp/custom_utilscpp.cpp @@ -51,7 +51,7 @@ extern "C" { #include "time.h" #include "custom_utils.h" -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE #include "cywee_service.h" #endif #include "wearable_log.h" diff --git a/fd230_driver_patch/0523sdk_driver_patch/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h b/fd230_driver_patch/0523sdk_driver_patch/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h index d3b5782d9..74f585f00 100644 --- a/fd230_driver_patch/0523sdk_driver_patch/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h +++ b/fd230_driver_patch/0523sdk_driver_patch/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h @@ -15,7 +15,7 @@ #include "cat1_ctl.h" #endif -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE extern void cywee_int1_callback(pin_t pin, uintptr_t param); #endif /** @@ -104,9 +104,9 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO12 I2C0 SDA { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO13 I2C1 SCL touch i2c { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO14 I2C1 SDA - { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO15 I2C2 SCL Sensor 6Öá Ö¸ÄÏÕë ÐÄÂÊ + { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO15 I2C2 SCL Sensor 6�� ָ���� ���� { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO16 I2C2 SDA Sensor - { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO17 i2c3 SCL smart pa\ Ô¤ÁôÂí´ï¿ØÖÆ \°²È«Ð¾Æ¬ + { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO17 i2c3 SCL smart pa\ Ԥ��������� \��ȫоƬ { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO18 I2C3 SDA { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO19 uart1 tx { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO20 uart1 rx @@ -171,42 +171,42 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L16 NC { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L17 HX3507_INT not use - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L18 VDDEN //ÔÝʱÎÞÓ㬲ÉÓÃVDDIO ĬÈÏ¿ªÆô EXt V3.0 EXt V1.8 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_AGPIO_L19 G_INT2 //ÔÝʱ²»Óà + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L18 VDDEN //��ʱ���ã�����VDDIO Ĭ�Ͽ��� EXt V3.0 EXt V1.8 + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_AGPIO_L19 G_INT2 //��ʱ���� { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L20 0.2C_CHRG - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L21 NTC_VDD_ON ���ʹ� NTC������Դ #ifdef QSPI_DISPLAY { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 QSPI TE #else { HAL_PIO_FUNC_TE, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 MIPI TE #endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON ¿ØÖÆCAT_1¿ª»ú½Å£¬»òÕß¿ØÖÆ CAT1µçÔ´ À­¸ßÓÐЧ + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON ����CAT_1�����ţ����߿��� CAT1��Դ ������Ч { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L24 LCM_EN { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L25 //////////// audio pa reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 ���ʸ�λ PPG reset { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L27 LCM reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1¸´Î» CAT1_RESET_N À­µÍÓÐЧ - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L29 charge done info ¼ì²âÊÇ·ñ³äÂúµç - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 KP_MKIN1 »½ÐÑ CAT1 £¬Êä³ö - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L31 KP_MKOUIT1 »½ÐÑ À¶ÑÀ ,ÊäÈë + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1��λ CAT1_RESET_N ������Ч + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L29 charge done info ����Ƿ������ + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 KP_MKIN1 ���� CAT1 ����� + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L31 KP_MKOUIT1 ���� ���� ,���� { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L32 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R1 SE_REST °²È«Ð¾Æ¬¸´Î»»½ÐѽŠ+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R0 PRG_LED_POWER ON ���ʵȵ�Դ���ƽ� + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R1 SE_REST ��ȫоƬ��λ���ѽ� #if VIB_USE_PWM - // { HAL_PIO_FUNC_PWMP1_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å - // { HAL_PIO_FUNC_PWMN1_M3, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å + // { HAL_PIO_FUNC_PWMP1_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM ������ƽ� ����Ԥ������������λ�� + // { HAL_PIO_FUNC_PWMN1_M3, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM ������ƽ� ����Ԥ������������λ�� #else - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM ������ƽ� ����Ԥ������������λ�� #endif { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R3 NC { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_R4 tp reset { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R5 touch int - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R6 PRG_INT ÐÄÂÊÖÐ¶Ï + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R6 PRG_INT �����ж� { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R7 GYRO_INT2 { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R8 GYRO_INT1 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R9 BAT_CHARGE_OFF ¹Øµô³äµç ζȸߵÄʱºò + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R9 BAT_CHARGE_OFF �ص���� �¶ȸߵ�ʱ�� { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R10 Key2 ///////////////////HAL_PIO_IE_ENBALE input enable #if CORE == APPS @@ -242,11 +242,11 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { */ -//ĬÈÏ¿ªÆôCat1 È»ºóÔÙ¸ù¾ÝÅäÖþö¶¨ÊÇ·ñ¹Ø±Õ. -//ĬÈϲ»¿ªÆô ppg checkidʧ°Ü£¬Ô­Òòδ֪£¬ÔÝʱ¿ª»ú¿ªÆôcat1 +//Ĭ�Ͽ���Cat1 Ȼ���ٸ������þ����Ƿ�ر�. +//Ĭ�ϲ����� ppg checkidʧ�ܣ�ԭ��δ֪����ʱ��������cat1 #define DEFAULT_POWERON_CAT1 0 -//ÐèÒªÅäÖÃĬÈÏÊä³öµÄ£¬ÒÔ¼°ÐèÒªÅäÖÃĬÈÏÊäÈëÖжϺ¯ÊýµÄ¡£ +//��Ҫ����Ĭ������ģ��Լ���Ҫ����Ĭ�������жϺ����ġ� const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { #if DEFAULT_POWERON_CAT1 @@ -267,16 +267,16 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { // S_AGPIO_L13 SCLK_BT { S_AGPIO_L13, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset + // S_AGPIO_L26 ���ʸ�λ PPG reset { S_AGPIO_L26, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ+ // S_AGPIO_R0 PRG_LED_POWER ON ���ʵȵ�Դ���ƽ� { S_AGPIO_R0, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - //S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ ,ĬÈÏ¹Ø±Õ + //S_AGPIO_L21 NTC_VDD_ON ���ʹ� NTC������Դ ,Ĭ�Ϲر� { S_AGPIO_L21, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#if 1 //ĬÈÏÕý³£³äµç +#if 1 //Ĭ��������� // #define GPIO_PIN_ENABLE_CHARGE S_AGPIO_R9 //low enable -// #define GPIO_PIN_ENABLE_CHARGE_0_2C S_AGPIO_L20 //low 0.2c µÍµçÁ÷³äµç +// #define GPIO_PIN_ENABLE_CHARGE_0_2C S_AGPIO_L20 //low 0.2c �͵������ { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, #else @@ -284,18 +284,18 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, #endif -//ĬÈϹرÕÂí´ï +//Ĭ�Ϲر����� { S_AGPIO_R2, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -//ĬÈÏ¿ªÆô EXT LDO V3.0 V1.8 +//Ĭ�Ͽ��� EXT LDO V3.0 V1.8 { S_AGPIO_L18, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19*/ //{ S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, GPIO_INTERRUPT_RISING_EDGE, cywee_int1_callback }, { S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int1_callback }, // { S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, #endif - /**S_AGPIO_R1 GPO alipayĬÈÏresetpin*/ + /**S_AGPIO_R1 GPO alipayĬ��resetpin*/ { S_AGPIO_R1, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, #ifdef SUPPORT_CAT1_SERVICE /**cat1 ring input key*/ diff --git a/fd230_driver_patch/0626sdk_driver_patch/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h b/fd230_driver_patch/0626sdk_driver_patch/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h index a063a8c24..609247a75 100644 --- a/fd230_driver_patch/0626sdk_driver_patch/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h +++ b/fd230_driver_patch/0626sdk_driver_patch/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h @@ -15,7 +15,7 @@ #include "cat1_ctl.h" #endif -#ifdef ENABLE_CYWEE +#ifdef SUPPORT_CYWEE_SERVICE extern void cywee_int_callback(pin_t pin, uintptr_t param); #endif /** @@ -104,9 +104,9 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO12 I2C0 SDA { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO13 I2C1 SCL touch i2c { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO14 I2C1 SDA - { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO15 I2C2 SCL Sensor 6Öá Ö¸ÄÏÕë ÐÄÂÊ + { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO15 I2C2 SCL Sensor 6�� ָ���� ���� { HAL_PIO_FUNC_I2C2_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO16 I2C2 SDA Sensor - { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO17 i2c3 SCL smart pa\ Ô¤ÁôÂí´ï¿ØÖÆ \°²È«Ð¾Æ¬ + { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO17 i2c3 SCL smart pa\ Ԥ��������� \��ȫоƬ { HAL_PIO_FUNC_I2C3_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO18 I2C3 SDA { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_MGPIO19 uart1 tx { HAL_PIO_FUNC_UART1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_ENBALE }, // S_MGPIO20 uart1 rx @@ -171,43 +171,43 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L16 NC { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L17 HX3507_INT not use - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L18 VDDEN //ÔÝʱÎÞÓ㬲ÉÓÃVDDIO ĬÈÏ¿ªÆô EXt V3.0 EXt V1.8 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_L19 G_INT2 //ÔÝʱ²»Óà + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L18 VDDEN //��ʱ���ã�����VDDIO Ĭ�Ͽ��� EXt V3.0 EXt V1.8 + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_L19 G_INT2 //��ʱ���� { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L20 0.2C_CHRG - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L21 NTC_VDD_ON ���ʹ� NTC������Դ #ifdef QSPI_DISPLAY { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 QSPI TE #else { HAL_PIO_FUNC_TE, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 MIPI TE #endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON ¿ØÖÆCAT_1¿ª»ú½Å£¬»òÕß¿ØÖÆ CAT1µçÔ´ À­¸ßÓÐЧ + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON ����CAT_1�����ţ����߿��� CAT1��Դ ������Ч { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L24 LCM_EN { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L25 //////////// audio pa reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 ���ʸ�λ PPG reset { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L27 LCM reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1¸´Î» CAT1_RESET_N À­µÍÓÐЧ - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L29 charge done info ¼ì²âÊÇ·ñ³äÂúµç - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 KP_MKIN1 »½ÐÑ CAT1 £¬Êä³ö - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L31 KP_MKOUIT1 »½ÐÑ À¶ÑÀ ,ÊäÈë + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1��λ CAT1_RESET_N ������Ч + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L29 charge done info ����Ƿ������ + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 KP_MKIN1 ���� CAT1 ����� + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L31 KP_MKOUIT1 ���� ���� ,���� { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L32 NC - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R1 SE_REST °²È«Ð¾Æ¬¸´Î»»½ÐѽŠ+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R0 PRG_LED_POWER ON ���ʵȵ�Դ���ƽ� + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R1 SE_REST ��ȫоƬ��λ���ѽ� // #if VIB_USE_PWM - // { HAL_PIO_FUNC_PWMP1_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å - // { HAL_PIO_FUNC_PWMN1_M3, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å + // { HAL_PIO_FUNC_PWMP1_M2, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM ������ƽ� ����Ԥ������������λ�� + // { HAL_PIO_FUNC_PWMN1_M3, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM ������ƽ� ����Ԥ������������λ�� // #else - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM Âí´ï¿ØÖƽмæÈÝÔ¤ÁôÂí´ïÇý¶¯¸´Î»½Å + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R2 VIBR_PWM ������ƽ� ����Ԥ������������λ�� // #endif { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_R3 NC { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_UP, HAL_PIO_IE_DISABLE }, // S_AGPIO_R4 tp reset { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R5 touch int - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R6 PRG_INT ÐÄÂÊÖÐ¶Ï + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R6 PRG_INT �����ж� { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R7 GYRO_INT2 { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R8 GYRO_INT1 - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R9 BAT_CHARGE_OFF ¹Øµô³äµç ζȸߵÄʱºò + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_R9 BAT_CHARGE_OFF �ص���� �¶ȸߵ�ʱ�� { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_R10 Key2 ///////////////////HAL_PIO_IE_ENBALE input enable #if CORE == APPS @@ -243,11 +243,11 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { */ -//ĬÈÏ¿ªÆôCat1 È»ºóÔÙ¸ù¾ÝÅäÖþö¶¨ÊÇ·ñ¹Ø±Õ. -//ĬÈϲ»¿ªÆô ppg checkidʧ°Ü£¬Ô­Òòδ֪£¬ÔÝʱ¿ª»ú¿ªÆôcat1 +//Ĭ�Ͽ���Cat1 Ȼ���ٸ������þ����Ƿ�ر�. +//Ĭ�ϲ����� ppg checkidʧ�ܣ�ԭ��δ֪����ʱ��������cat1 #define DEFAULT_POWERON_CAT1 0 -//ÐèÒªÅäÖÃĬÈÏÊä³öµÄ£¬ÒÔ¼°ÐèÒªÅäÖÃĬÈÏÊäÈëÖжϺ¯ÊýµÄ¡£ +//��Ҫ����Ĭ������ģ��Լ���Ҫ����Ĭ�������жϺ����ġ� const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { #if DEFAULT_POWERON_CAT1 @@ -268,16 +268,16 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { // S_AGPIO_L13 SCLK_BT { S_AGPIO_L13, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_L26 ÐÄÂʸ´Î» PPG reset + // S_AGPIO_L26 ���ʸ�λ PPG reset { S_AGPIO_L26, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - // S_AGPIO_R0 PRG_LED_POWER ON ÐÄÂʵȵçÔ´¿ØÖƽŠ+ // S_AGPIO_R0 PRG_LED_POWER ON ���ʵȵ�Դ���ƽ� { S_AGPIO_R0, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, - //S_AGPIO_L21 NTC_VDD_ON ¸øµÍ´ò¿ª NTCÉÏÀ­µçÔ´ ,ĬÈÏ¹Ø±Õ + //S_AGPIO_L21 NTC_VDD_ON ���ʹ� NTC������Դ ,Ĭ�Ϲر� { S_AGPIO_L21, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#if 1 //ĬÈÏÕý³£³äµç +#if 1 //Ĭ��������� // #define GPIO_PIN_ENABLE_CHARGE S_AGPIO_R9 //low enable -// #define GPIO_PIN_ENABLE_CHARGE_0_2C S_AGPIO_L20 //low 0.2c µÍµçÁ÷³äµç +// #define GPIO_PIN_ENABLE_CHARGE_0_2C S_AGPIO_L20 //low 0.2c �͵������ { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, #else @@ -285,17 +285,17 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, #endif -//ĬÈϹرÕÂí´ï +//Ĭ�Ϲر����� { S_AGPIO_R2, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, -//ĬÈÏ¿ªÆô EXT LDO V3.0 V1.8 +//Ĭ�Ͽ��� EXT LDO V3.0 V1.8 { S_AGPIO_L18, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, -#ifdef ENABLE_CYWEE - /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19 ²ÉÓÃtimer ʱÕâЩÖжÏÒªÆÁ±Î*/ +#ifdef SUPPORT_CYWEE_SERVICE + /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19 ����timer ʱ��Щ�ж�Ҫ����*/ { S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cywee_int_callback }, //{ S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int_callback }, #endif - /**S_AGPIO_R1 GPO alipayĬÈÏresetpin*/ + /**S_AGPIO_R1 GPO alipayĬ��resetpin*/ { S_AGPIO_R1, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, #ifdef SUPPORT_CAT1_SERVICE /**cat1 ring input key*/ -- 2.17.1