合入ppg,mag,cywee 底层服务
authorpenglei <1624952103@qq.com>
Mon, 19 May 2025 02:30:32 +0000 (10:30 +0800)
committerpenglei <1624952103@qq.com>
Mon, 19 May 2025 02:30:32 +0000 (10:30 +0800)
71 files changed:
.vscode/settings.json
code/sdk/application/brandy/brandy_standard/board_init.c
code/sdk/application/brandy/brandy_standard/service_init.c
code/sdk/application/brandy/brandy_standard/thread_pri_init.c
code/sdk/application/wearable/fd230/nativeapp/nativeui/activity/src/ActivityModel.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bloodoxygen/src/BloodResultPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/compass/src/CompassModel.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/heart_blood/CheckAbnormalPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/heart_blood/CheckInvalidPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartModel.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartResultPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialLabelView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/motionrecognition/src/MotionRecognitionPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/saveele/src/SaveBatPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/sleep/src/SleepModel.cpp
code/sdk/application/wearable/fd230/service/broadcast/include/broadcast_feature.h
code/sdk/application/wearable/service/broadcast/src/broadcast_implement.c
code/sdk/build/config/target_config/brandy/config.py
code/sdk/drivers/boards/brandy_evb/board_config/board_fd230.h
code/sdk/drivers/boards/brandy_evb/board_config/board_lt22.h
code/sdk/drivers/boards/brandy_evb/board_config/board_u8.h
code/sdk/drivers/boards/brandy_evb/board_config/board_w9.h
code/sdk/drivers/chips/brandy/porting/uart/uart_porting.c
code/sdk/middleware/chips/brandy/exception/chip_system_time.c
code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_control.c
code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_control.h
code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_core.c
code/sdk/zhihui/UI/producttest/src/testbt.cpp
code/sdk/zhihui/drivers/charge/service/charge_service.c
code/sdk/zhihui/drivers/cywee/CMakeLists.txt
code/sdk/zhihui/drivers/cywee/Inc/cywee_hal.h
code/sdk/zhihui/drivers/cywee/service/cywee_service.c
code/sdk/zhihui/drivers/cywee/src/config.h [deleted file]
code/sdk/zhihui/drivers/cywee/src/main_dml.c
code/sdk/zhihui/drivers/mag/CMakeLists.txt
code/sdk/zhihui/drivers/mag/hal/CMakeLists.txt [new file with mode: 0644]
code/sdk/zhihui/drivers/mag/hal/mag_hal.c [new file with mode: 0644]
code/sdk/zhihui/drivers/mag/hal/mag_hal.h [new file with mode: 0644]
code/sdk/zhihui/drivers/mag/mmc5603/CMakeLists.txt [new file with mode: 0644]
code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_hal.h
code/sdk/zhihui/drivers/mag/service/CMakeLists.txt [new file with mode: 0644]
code/sdk/zhihui/drivers/mag/service/mag_at_cmd.c [moved from code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_at_cmd.c with 51% similarity]
code/sdk/zhihui/drivers/mag/service/mag_at_cmd.h [moved from code/sdk/zhihui/drivers/mag/mmc5603/mmc5603_at_cmd.h with 50% similarity]
code/sdk/zhihui/drivers/mag/service/mag_service.c
code/sdk/zhihui/drivers/mag/service/mag_service.h
code/sdk/zhihui/drivers/ppg/CMakeLists.txt
code/sdk/zhihui/drivers/ppg/gh3x2x/src/gh3x2x_hal.c
code/sdk/zhihui/drivers/ppg/hal/CMakeLists.txt [new file with mode: 0644]
code/sdk/zhihui/drivers/ppg/hal/ppg_hal.c [new file with mode: 0644]
code/sdk/zhihui/drivers/ppg/hal/ppg_hal.h [new file with mode: 0644]
code/sdk/zhihui/drivers/ppg/hx3695/CMakeLists.txt
code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c
code/sdk/zhihui/drivers/ppg/hx3695/hx3695.h
code/sdk/zhihui/drivers/ppg/hx3695/hx3695_check_touch.c
code/sdk/zhihui/drivers/ppg/hx3695/hx3695_hal.c
code/sdk/zhihui/drivers/ppg/hx3695/hx3695_hrs_custom.c
code/sdk/zhihui/drivers/ppg/service/ppg_at_cmd.h
code/sdk/zhihui/drivers/ppg/service/ppg_service.cpp
code/sdk/zhihui/drivers/ppg/vc9202/src/vc9202_hal.c
code/sdk/zhihui/drivers/ppg/vc921x/src/vc921x_hal.c
code/sdk/zhihui/drivers/rotary_encoder/hx3507/hx3507_at_cmd.h
code/sdk/zhihui/services/battery/service/battery_service.cpp
code/sdk/zhihui/services/ble_service/bleservice/bleService.c
code/sdk/zhihui/utils/custom_cmd_service.c
code/sdk/zhihui/utils/custom_fileoperate_service.c
code/sdk/zhihui/utils/custom_utils.c
code/sdk/zhihui/utils/custom_utils.h
code/sdk/zhihui/utils/custom_utils_at_cmd.c
code/sdk/zhihui/utilscpp/custom_utilscpp.cpp
fd230_driver_patch/0523sdk_driver_patch/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h
fd230_driver_patch/0626sdk_driver_patch/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h

index 7918d67..0b4941e 100644 (file)
         "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
index 90fa0f8..bcc551c 100644 (file)
@@ -229,9 +229,9 @@ void board_init(uint32_t flash_id, uint32_t flash_unique_id)
     if (need_enter_safemode() == true)\r
     {\r
         PRINT("entering SafeMode\r\n");\r
-        #ifdef CUSTOM_UTILS\r
-        uapi_dev_runtime_set_safemode_flag(1);\r
-        #endif\r
+        // #ifdef CUSTOM_UTILS\r
+        // uapi_dev_runtime_set_safemode_flag(1);\r
+        // #endif\r
     }else{\r
         PRINT("entering NormalMode\r\n");\r
     }\r
index c8510e1..0d35e7b 100644 (file)
@@ -61,8 +61,8 @@
 #include "cywee_at_cmd.h"\r
 #endif\r
 \r
-#ifdef SUPPORT_AT_MMC5603\r
-#include "mmc5603_at_cmd.h"\r
+#ifdef SUPPORT_AT_MAG\r
+#include "mag_at_cmd.h"\r
 #endif\r
 \r
 #ifdef SUPPORT_AT_CUSTOMUTILS\r
@@ -176,10 +176,10 @@ static void register_at_service(void)
     at_cmd_add_moudle(cywee_table, cywee_cmd_count);\r
 #endif\r
 \r
-#ifdef SUPPORT_AT_MMC5603\r
-    uint32_t mmc5603_cmd_count;\r
-    at_cmd_table_t *mmc5603_table = get_mmc5603_cmd_table(&mmc5603_cmd_count);\r
-    at_cmd_add_moudle(mmc5603_table, mmc5603_cmd_count);\r
+#ifdef SUPPORT_AT_MAG\r
+    uint32_t mag_cmd_count;\r
+    at_cmd_table_t *mag_table = get_mag_cmd_table(&mag_cmd_count);\r
+    at_cmd_add_moudle(mag_table, mag_cmd_count);\r
 #endif\r
 \r
 #ifdef SUPPORT_AT_RTCTEST\r
index 74c3b2c..9e17c93 100644 (file)
 #ifdef SUPPORT_BATTERY_SERVICE\r
 #include "battery_service.h"\r
 #endif\r
-#ifdef MAG_MMC5603\r
+#ifdef SUPORT_MAG_SERVICE\r
 #include "mag_service.h"\r
 #endif\r
 #ifdef ACC_LIS2DOC\r
 #include "acc_service.h"\r
 #endif\r
 \r
-#ifdef ENABLE_CYWEE\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
 #include "cywee_service.h"\r
 #endif\r
 \r
@@ -464,13 +464,13 @@ static void thread_main(const void *unused)
      * ConfigModel 初始化\r
      * \r
     */\r
-#ifdef CUSTOM_UTILS\r
-    ConfigModelInit();\r
-    uapi_runtime_log_service_init();\r
-    init_btaddr_btname();\r
-    uapi_calendar_init();\r
-    uapi_calendar_recover_date();\r
-#endif\r
+// #ifdef CUSTOM_UTILS\r
+//     ConfigModelInit();\r
+//     uapi_runtime_log_service_init();\r
+//     init_btaddr_btname();\r
+//     uapi_calendar_init();\r
+//     uapi_calendar_recover_date();\r
+// #endif\r
 #if DSP_EXIST == YES\r
     audio_init();\r
 #endif\r
@@ -504,10 +504,10 @@ static void thread_main(const void *unused)
 #endif\r
 \r
 \r
-#ifdef CUSTOM_UTILS\r
-    uapi_custom_cmd_service_init();\r
-    uapi_custom_fileoperate_service_init();\r
-#endif\r
+// #ifdef CUSTOM_UTILS\r
+//     uapi_custom_cmd_service_init();\r
+//     uapi_custom_fileoperate_service_init();\r
+// #endif\r
 \r
 \r
 #ifdef SUPPORT_CAT1_SERVICE\r
@@ -527,7 +527,7 @@ static void thread_main(const void *unused)
     custom_i2c_init(I2C_BUS_0);\r
     custom_i2c_init(I2C_BUS_2);\r
 \r
-#ifdef MAG_MMC5603\r
+#ifdef SUPORT_MAG_SERVICE\r
     uapi_mag_service_init();\r
 #endif\r
 \r
@@ -535,7 +535,7 @@ static void thread_main(const void *unused)
     uapi_ppg_service_init();\r
 #endif\r
 \r
-#ifdef ENABLE_CYWEE\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
     uapi_cywee_service_init();\r
 #endif \r
 \r
@@ -554,9 +554,9 @@ static void thread_main(const void *unused)
 #endif\r
 \r
     /*启动蓝牙ble服务,cywee有重置 mac地址的操作,会需要把 蓝牙服务开启放在cywee服务之后*/\r
-#ifdef CUSTOM_UTILS\r
-    start_custom_ble_service();\r
-#endif\r
+// #ifdef CUSTOM_UTILS\r
+//     start_custom_ble_service();\r
+// #endif\r
 // #ifdef SUPPORT_ALIPAY_SEC\r
 // #if !defined(A5133_DEMO_SERVER) && !defined(A5133_DEMO_CLIENT)\r
 //     uapi_alipay_svr_init();\r
@@ -579,9 +579,9 @@ static void thread_main(const void *unused)
     //开始播放开机动画,并启动ohos系统\r
     ohos_startup();\r
 #endif\r
-#ifdef CUSTOM_UTILS\r
-    startup_post_init();\r
-#endif\r
+// #ifdef CUSTOM_UTILS\r
+//     startup_post_init();\r
+// #endif\r
     set_startup_finish_flag();\r
 }\r
 \r
index e9ff3f5..182e04a 100644 (file)
@@ -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 <ctime>
 
+#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;
 }
 }
index 7a343c6..2d1014c 100644 (file)
@@ -44,7 +44,7 @@
 #include <sys/stat.h>\r
 #include <unistd.h>\r
 \r
-// #include "battery_hal.h"\r
+#include "battery_hal.h"\r
 \r
 #include "languagecode/LanguageInit.h"\r
 #include "ui_service.h"\r
index 54a2e90..526d0a2 100644 (file)
@@ -82,7 +82,7 @@ namespace OHOS
     {
         if (num == 0 || data == nullptr)
         {
-            GRAPHIC_LOGE("Invalid data or num.");
+            // GRAPHIC_LOGE("Invalid data or num.");
             return;
         }
 
index c930347..393a035 100644 (file)
@@ -13,7 +13,7 @@
 #include <custom_utils.h>
 #include "ConfigModel.h"
 #include <UiConfig.h>
-#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);
index c4be16f..f0c616d 100644 (file)
@@ -51,13 +51,13 @@ void SaveBatPresenter::OnStart() {
   Presenter<SaveBatView>::OnStart();\r
   // 1.获取原drag\r
   #ifdef CUSTOM_UTILS\r
-  drag_x = get_drag_limit(0);\r
-  drag_y = get_drag_limit(1);\r
+  // drag_x = get_drag_limit(0);\r
+  // drag_y = get_drag_limit(1);\r
  \r
-  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "drag_x:%d,drag_y:%d", drag_x, drag_y);\r
-  // 2.设置drag\r
-  enable_drag(0, 0);\r
-  enable_drag(1, 0);\r
+  // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "drag_x:%d,drag_y:%d", drag_x, drag_y);\r
+  // // 2.设置drag\r
+  // enable_drag(0, 0);\r
+  // enable_drag(1, 0);\r
   #endif\r
 }\r
 \r
index b4024fd..da8eedb 100644 (file)
@@ -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:
 #include <cmsis_os2.h>
 #include <service/graphic_service.h>
 
+#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()
index 3c9fcf0..e2ceb00 100644 (file)
@@ -48,7 +48,7 @@ typedef enum {
     TOPIC_EVENT_HFP_PHONE_TO_WATCH,\r
     TOPIC_EVENT_HFP_WATCH_TO_PHONE,\r
     TOPIC_EVENT_HFP_HINT,\r
-#ifdef CYWEE_SPORT\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
     TOPIC_EVENT_ACTIVITY_UPDATE,\r
     TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE,\r
     TOPIC_EVENT_AR_ALERT_TYPE_UPDATE,\r
index 7404f17..3141b0d 100644 (file)
@@ -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},
index 97f89fb..fd0a2d9 100644 (file)
@@ -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',
index bba5880..36178bf 100644 (file)
@@ -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 },
index 709d2da..e7ce605 100644 (file)
@@ -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 },
index aec596b..30d5945 100644 (file)
@@ -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 },
index b506e9c..48630ff 100644 (file)
@@ -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 },
index dc93256..dbe840e 100644 (file)
@@ -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') 
         {
index 02e2775..ecef3bb 100644 (file)
@@ -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();
index 4657313..f09c3ce 100644 (file)
@@ -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);
     }
 }
 
index aafaed0..978b993 100644 (file)
@@ -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;
 
index 5c49a66..7faeee7 100644 (file)
@@ -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();
index 327e91a..e92a457 100644 (file)
@@ -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)
     {
 
index 3f9df3d..09c65a7 100644 (file)
@@ -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");
     }
 }
 
index 1fa816d..569bfdd 100644 (file)
@@ -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})
index 4a86e89..216fd97 100644 (file)
@@ -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);
index b40f7a2..e524886 100644 (file)
@@ -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 (file)
index fd0a010..0000000
+++ /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__
index 38ea99f..e256366 100644 (file)
 #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;}
index 2f24c06..19b960d 100644 (file)
@@ -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 (file)
index 0000000..7f82aa0
--- /dev/null
@@ -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 (file)
index 0000000..bb6ba40
--- /dev/null
@@ -0,0 +1,58 @@
+#include <stdint.h>
+#include <stdbool.h>
+
+#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 (file)
index 0000000..bad16d6
--- /dev/null
@@ -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 (file)
index 0000000..d6bd58f
--- /dev/null
@@ -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
index 069caef..5b95cb8 100644 (file)
@@ -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 (file)
index 0000000..9a135ef
--- /dev/null
@@ -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()
@@ -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;
 }
@@ -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 <stdint.h>
 #include <stdio.h>
@@ -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
index b2561f2..2b089b6 100644 (file)
@@ -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
index 951ffee..47682f4 100644 (file)
@@ -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
 }
index 88975a2..271ddd2 100644 (file)
@@ -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
index 5a6f1ec..582e51b 100644 (file)
@@ -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 (file)
index 0000000..620b0ea
--- /dev/null
@@ -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 (file)
index 0000000..a123a3a
--- /dev/null
@@ -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 <stdio.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <math.h>
+#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 (file)
index 0000000..5e19312
--- /dev/null
@@ -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
index c55141c..c11b318 100644 (file)
@@ -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
index 224305c..410bd63 100644 (file)
 // #include "lv_dev.h"\r
 // #include "app_task.h"\r
 \r
+#ifdef SUPPORT_CYWEE_SERVICE\r
 #include "cywee_hal.h"\r
 #include "cywee_service.h"\r
 #include "custom_utils.h"\r
 #include "custom_runtime.h"\r
+#endif\r
+\r
+#include "ppg_hal.h"\r
+\r
 \r
 FT_CUSTOM_RESULTS_t hrsresult ={0};\r
 \r
@@ -43,7 +48,9 @@ int16_t gsen_fifo_x[64]={0};
 int16_t gsen_fifo_y[64]={0};\r
 int16_t gsen_fifo_z[64]={0};\r
 \r
+#ifdef SUPPORT_CYWEE_SERVICE\r
 gsenson_t gsensordata[32];\r
+#endif\r
 \r
 static uint8_t msg_count = 0;\r
 \r
@@ -125,9 +132,10 @@ uint8_t alg_ram[11 * 1024] __attribute__((aligned(4)));
 //uint8_t alg_ram[10] = {0};\r
 ppg_sensor_data_t ppg_s_data;\r
 \r
-static int cywee_data = 0;\r
+static uint8_t hrs_result = 0;\r
 static int history_wear_status = -1;\r
-static int cywee_wear_status = 0;\r
+static uint8_t wear_status = 0;\r
+static uint8_t spo2_result = 0;\r
 \r
 static uint8_t hx3695_chip_id = 0;\r
 \r
@@ -364,7 +372,7 @@ void hx3695_gpioint_cfg(bool en)
 }\r
 #endif\r
 \r
-bool hx3695_chip_check(void)\r
+uint8_t hx3695_chip_check(void)\r
 {\r
     uint8_t i = 0;\r
     uint8_t chip_id = 0;\r
@@ -380,13 +388,13 @@ bool hx3695_chip_check(void)
             //printf("hx3695_chip_check ok  chip_id: 0x%x \r\n",chip_id);\r
                        //Efuse_Mode_Check();\r
             hx3695_chip_id = chip_id;\r
-            return true;\r
+            // return hx3695_chip_id;\r
         }\r
     }\r
 \r
-    printf(" hx3695_chip_check fail!  chip_id: 0x%x \r\n", chip_id);\r
+    printf(" hx3695 chip_id: 0x%x \r\n", chip_id);\r
 \r
-    return false;\r
+    return chip_id;\r
 }\r
 \r
 void hx3695_get_id(uint8_t *ppg_id)\r
@@ -2237,7 +2245,7 @@ void hx3695_check_touch_init(void) //
 // 初始化调用入口函数\r
 bool hx3695_init(WORK_MODE_T mode)\r
 {\r
-  hx3695_msg_callback_t func;\r
+  // hx3695_msg_callback_t func;\r
 \r
 \r
        //TYHX_LOG("this chip hx3695_init  mode: %d !! \r\n", mode);\r
@@ -2328,11 +2336,11 @@ bool hx3695_init(WORK_MODE_T mode)
         //TYHX_LOG(" hx3695_init mode : LEAK_LIGHT_MODE \n");\r
         hx3695_factroy_test(LEAK_LIGHT_TEST);\r
 \r
-        func =  hx3695_get_send_msg_callback_func();\r
-        if(func != NULL)\r
-        {\r
-          func(HX3695_MSG_TYPE_LEAKLIGHT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
-        }\r
+        // func =  hx3695_get_send_msg_callback_func();\r
+        // if(func != NULL)\r
+        // {\r
+        //   func(HX3695_MSG_TYPE_LEAKLIGHT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+        // }\r
         break;\r
 \r
     case FT_GRAY_CARD_MODE:\r
@@ -2344,11 +2352,11 @@ bool hx3695_init(WORK_MODE_T mode)
         //TYHX_LOG(" hx3695_init mode : GRAY_CARD_MODE \n");\r
         hx3695_factroy_test(GRAY_CARD_TEST);\r
 \r
-        func =  hx3695_get_send_msg_callback_func();\r
-        if(func != NULL)\r
-        {\r
-          func(HX3695_MSG_TYPE_GRAYCARD_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
-        }\r
+        // func =  hx3695_get_send_msg_callback_func();\r
+        // if(func != NULL)\r
+        // {\r
+        //   func(HX3695_MSG_TYPE_GRAYCARD_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+        // }\r
         break;\r
 \r
     case FT_INT_TEST_MODE:\r
@@ -2715,6 +2723,22 @@ static void get_avg_hrs(int32_t hrs)
     }\r
 }\r
 \r
+uint8_t hx3695_get_hrs(void)\r
+{\r
+    return hrs_result;\r
+}\r
+\r
+uint8_t hx3695_get_spo2(void)\r
+{\r
+    return spo2_result;\r
+}\r
+\r
+\r
+uint8_t hx3695_get_wear_status(void)\r
+{\r
+    return wear_status;\r
+}\r
+\r
 void hx3695_set_hrs_ble_swtich(uint8_t cmd)\r
 {\r
   hrs_ble_falg = cmd;\r
@@ -2729,34 +2753,35 @@ uint8_t hx3695_get_hrs_ble_swtich(void)
 \r
 void hx3695_wearstatus_update(void)\r
 {\r
-    if(history_wear_status != cywee_wear_status)\r
+    if(history_wear_status != wear_status)\r
     {\r
-        history_wear_status = cywee_wear_status;\r
-        cywee_data = history_wear_status;\r
-        do_cywee_service_check_msg(CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE,&cywee_data);\r
+        history_wear_status = wear_status;\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
+        do_cywee_service_check_msg(CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE,&wear_status);\r
+#endif\r
     }\r
 }\r
   //脱腕上报未佩戴信息\r
 void hx3695_unwearstatus_update(void)\r
 {\r
-  hx3695_msg_callback_t func =  hx3695_get_send_msg_callback_func();\r
-  if(func != NULL && !uapi_dev_runtime_get_train_status())\r
-  {\r
-    hrsresult.lastesthrs = 0;\r
-    hrsresult.wearstatus = 0;\r
-    //为了主界面脱腕灵敏;需要增加未佩戴\r
-    func(HX3695_MSG_TYPE_HRS_UPDATE, &hrsresult, sizeof(FT_CUSTOM_RESULTS_t));\r
-    func(HX3695_MSG_TYPE_WEARSTAT_UPDATE, &hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
-    func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
-    func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
-  }\r
+  // hx3695_msg_callback_t func =  hx3695_get_send_msg_callback_func();\r
+  // if(func != NULL && !uapi_dev_runtime_get_train_status())\r
+  // {\r
+  //   hrsresult.lastesthrs = 0;\r
+  //   hrsresult.wearstatus = 0;\r
+  //   //为了主界面脱腕灵敏;需要增加未佩戴\r
+  //   func(HX3695_MSG_TYPE_HRS_UPDATE, &hrsresult, sizeof(FT_CUSTOM_RESULTS_t));\r
+  //   func(HX3695_MSG_TYPE_WEARSTAT_UPDATE, &hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+  //   func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+  //   func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+  // }\r
 \r
   if(uapi_dev_runtime_get_train_status())\r
   {\r
-      cywee_wear_status = 0;\r
+      wear_status = 0;\r
       hx3695_wearstatus_update();\r
-      cywee_data = 0;\r
-      do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_CHANGE,&cywee_data);\r
+      hrs_result = 0;\r
+\r
   }\r
 }                              \r
 \r
@@ -2843,6 +2868,7 @@ void hx3695_hrs_ppg_Int_handle(void)
     // {\r
     //     return;\r
     // }\r
+  #ifdef SUPPORT_CYWEE_SERVICE\r
     memset(gsensordata,0.0f,sizeof(gsenson_t) * *count);\r
 \r
     gsensor_get_n_data(*count,gsensordata);  \r
@@ -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);\r
 \r
     }\r
+#endif\r
     hrs_wear_status = hx3695_hrs_get_wear_status();\r
     //PRINT("hrs_wear_status:    %d !!\r\n", hrs_wear_status);\r
 \r
@@ -2960,43 +2987,43 @@ void hx3695_hrs_ppg_Int_handle(void)
     {\r
         if(hrsresult.hr_living == MSG_LIVING_TRUE)\r
         {\r
-            cywee_wear_status = 1;\r
+            wear_status = 1;\r
             if(hrsresult.lastesthrs > 30 && hrsresult.lastesthrs < 220)\r
                            get_avg_hrs(hrsresult.lastesthrs);\r
         }\r
         else\r
         {\r
-            cywee_wear_status = 0;\r
+            wear_status = 0;\r
         }\r
     }\r
     else\r
     {\r
         hrsresult.wearstatus = MSG_HRS_NO_WEAR;\r
         hrsresult.lastesthrs = 0;\r
-        cywee_wear_status = 0;\r
+        wear_status = 0;\r
     }\r
 \r
     \r
-    hx3695_msg_callback_t func =  hx3695_get_send_msg_callback_func();\r
-    if(func != NULL)\r
-    {\r
-      if(his_wear == hrsresult.wearstatus)\r
-      {\r
-          wear_cnt++;\r
-          if(wear_cnt >= 2 && !his_wear) //未佩戴超过2次 上报未佩戴信息\r
-          {\r
-              func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
-              wear_cnt = 0;\r
-          }\r
-      }\r
-      else\r
-      {\r
-          his_wear = hrsresult.wearstatus;\r
-          wear_cnt = 0;\r
-      }\r
-    }\r
+    // hx3695_msg_callback_t func =  hx3695_get_send_msg_callback_func();\r
+    // if(func != NULL)\r
+    // {\r
+    //   if(his_wear == hrsresult.wearstatus)\r
+    //   {\r
+    //       wear_cnt++;\r
+    //       if(wear_cnt >= 2 && !his_wear) //未佩戴超过2次 上报未佩戴信息\r
+    //       {\r
+    //           func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+    //           wear_cnt = 0;\r
+    //       }\r
+    //   }\r
+    //   else\r
+    //   {\r
+    //       his_wear = hrsresult.wearstatus;\r
+    //       wear_cnt = 0;\r
+    //   }\r
+    // }\r
     //PRINT("hrsresult.wearstatus : %d , his_wear : %d , wear_cnt : %d \n",hrsresult.wearstatus,his_wear,wear_cnt);\r
-    // PRINT("hrsresult.wearstatus : %d , cywee_wear_status : %d , hr_living : %d \n",hrsresult.wearstatus,cywee_wear_status,hrsresult.hr_living);\r
+    // PRINT("hrsresult.wearstatus : %d , wear_status : %d , hr_living : %d \n",hrsresult.wearstatus,wear_status,hrsresult.hr_living);\r
     // if(hrs_wear_status == MSG_HRS_WEAR && hrsresult.hr_living == MSG_LIVING_TRUE)\r
     // {\r
     //     if(hrsresult.lastesthrs > 30 && hrsresult.lastesthrs < 220)\r
@@ -3010,25 +3037,28 @@ void hx3695_hrs_ppg_Int_handle(void)
     //     hrsresult.lastesthrs = 0;\r
     // }\r
 \r
+    // PRINT("hrs : %d , wear_status : %d \n",hrsresult.lastesthrs,hrsresult.wearstatus);\r
+    hrs_result = hrsresult.lastesthrs;\r
+\r
     msg_count++;\r
     if(msg_count >= 3)\r
     {\r
           msg_count = 0;\r
-          if(func != NULL)\r
-          {\r
-            //PRINT("hrsresult.lastesthrs : %d \n",hrsresult.lastesthrs);\r
-            func(HX3695_MSG_TYPE_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
-            if(uapi_get_cywee_static_state())\r
-            {\r
-                func(HX3695_MSG_TYPE_STATIC_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
-            }\r
-          }\r
+          // if(func != NULL)\r
+          // {\r
+          //   //PRINT("hrsresult.lastesthrs : %d \n",hrsresult.lastesthrs);\r
+          //   func(HX3695_MSG_TYPE_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+          //   if(uapi_get_cywee_static_state())\r
+          //   {\r
+          //       func(HX3695_MSG_TYPE_STATIC_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+          //   }\r
+          // }\r
 \r
           if(uapi_dev_runtime_get_train_status())\r
           {\r
               hx3695_wearstatus_update();\r
-              cywee_data = hrsresult.lastesthrs;\r
-              do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_CHANGE,&cywee_data);\r
+              // hrs_result = hrsresult.lastesthrs;\r
+              // do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_CHANGE,&cywee_data);\r
           }\r
     }\r
 \r
@@ -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);\r
     \r
     hrsresult.lastestspo2 = spo2_alg_results.spo2_result;\r
-\r
+    spo2_result = hrsresult.lastestspo2;\r
 //     if(hrsresult.lastestspo2)\r
        {\r
                // store_latest_spo2(hrsresult.lastestspo2);\r
@@ -3507,13 +3537,13 @@ void hx3695_spo2_ppg_Int_handle(void)
 //             hr_sensor_notify_factory_test();\r
        }\r
            \r
-    hx3695_msg_callback_t func =  hx3695_get_send_msg_callback_func();\r
-    if(func != NULL)\r
-    {\r
-      hrsresult.wearstatus = spo2_wear_status;\r
-      func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
-      func(HX3695_MSG_TYPE_SPO2_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
-    }\r
+    // hx3695_msg_callback_t func =  hx3695_get_send_msg_callback_func();\r
+    // if(func != NULL)\r
+    // {\r
+    //   hrsresult.wearstatus = spo2_wear_status;\r
+    //   func(HX3695_MSG_TYPE_WEARSTAT_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+    //   func(HX3695_MSG_TYPE_SPO2_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
+    // }\r
 \r
 \r
 \r
@@ -3790,7 +3820,7 @@ void hx3695_wear_ppg_Int_handle(void)
     hx3695_wear_msg_code_t hx3695_wear_status;\r
        \r
     hx3695_check_touch_read(&ppg_s_data);\r
-    cywee_wear_status = hx3695_check_touch_send_data(ir_buf,*count);\r
+    wear_status = hx3695_check_touch_send_data(ir_buf,*count);\r
     hx3695_wearstatus_update();\r
        extern uint8_t notouch_cnt;\r
        extern uint8_t touch_cnt;\r
index 228abb1..6ceb1a2 100644 (file)
@@ -245,7 +245,7 @@ void hx3695_delay_ms(uint32_t ms);
 bool hx3695_write_reg(uint8_t addr, uint8_t data); \r
 uint8_t hx3695_read_reg(uint8_t addr); \r
 bool hx3695_brust_read_reg(uint8_t addr , uint8_t *buf, uint16_t length);\r
-bool hx3695_chip_check(void);\r
+uint8_t hx3695_chip_check(void);\r
 void hx3695_get_id(uint8_t *ppg_id);\r
 uint8_t hx3695_read_fifo_size(void);\r
 uint16_t hx3695_read_fifo_data(int32_t *s_buf, uint8_t size, uint8_t phase_num);\r
@@ -301,6 +301,8 @@ void hx3695_wearstatus_update(void);
 void hx3695_unwearstatus_update(void);\r
 void hx3695_set_hrs_ble_swtich(uint8_t cmd);\r
 uint8_t hx3695_get_hrs_ble_swtich(void);\r
-#include "hx3695_hal.h"\r
+uint8_t hx3695_get_hrs(void);\r
+uint8_t hx3695_get_spo2(void);\r
+uint8_t hx3695_get_wear_status(void);\r
 \r
 #endif\r
index 09e9a46..dd10f20 100644 (file)
@@ -9,7 +9,9 @@
 #include "hx3695.h"\r
 #include "hx3695_check_touch.h"\r
 #include "hx3695_hrs_agc.h"\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
 #include "cywee_hal.h"\r
+#endif\r
 \r
 hx3695_wear_msg_code_t hx3695_wear_status = MSG_NO_WEAR;\r
 hx3695_wear_msg_code_t hx3695_wear_status_pre = MSG_NO_WEAR;\r
index 4bad413..038259e 100644 (file)
@@ -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
index c78766d..5b86f23 100644 (file)
@@ -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;
-}
 
 
index a2906e2..876828d 100644 (file)
@@ -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 <stdint.h>
 #include <stdio.h>
index 72492c7..9419016 100644 (file)
@@ -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
 }
index 5e2d234..815e806 100644 (file)
@@ -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: 
  * 
 #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
index 477d9ee..648fb7e 100644 (file)
@@ -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();
     } 
index cb7de85..8af3fdc 100644 (file)
@@ -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
index 929b9f7..eac110b 100644 (file)
@@ -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;
index 43fe179..61b6682 100644 (file)
@@ -47,7 +47,7 @@ extern "C" {
 #endif\r
 \r
 #include "ConfigModelC.h"\r
-#ifdef SUPPORT_AT_CYWEE\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
 #include "cywee_ble_Service.h"\r
 #endif\r
 #ifdef SUPPORT_OHOSFWK\r
@@ -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 \r
         || uuid_tmp == BLE_UUID_PPG_BLE_SERVICE \r
         || uuid_tmp == ALIPAYY_SERVICE_ID\r
-#ifdef SUPPORT_AT_CYWEE\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
         || uuid_tmp == BLE_UUID_CYWEE_REPORT_SERVICE\r
 #endif\r
          ) \r
@@ -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);\r
 \r
 \r
-#ifdef SUPPORT_AT_CYWEE\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
 \r
     bt_uuid_t cywee_ble_service_uuid = {0};\r
     bts_data_to_uuid_len2(BLE_UUID_CYWEE_REPORT_SERVICE, &cywee_ble_service_uuid);\r
@@ -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);\r
     }\r
 \r
-#ifdef SUPPORT_AT_CYWEE\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
     if (ble_gatts_cmp_uuid(uuid, &cywee_ble_service_uuid) == true){\r
         ble_cywee_add_characters_and_descriptors(server_id,srv_handle);\r
         ret = gatts_start_service(server_id, srv_handle);\r
@@ -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);\r
     }\r
     \r
-#ifdef SUPPORT_AT_CYWEE\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
     bt_uuid_t cywee_report_uuid = {0};\r
     bts_data_to_uuid_len2(BLE_UUID_CYWEE_RX, &cywee_report_uuid);\r
 \r
@@ -1943,7 +1943,7 @@ void svr_ble_bluetooth_init(void)
     \r
     ble_ppgtest_server_init(g_ble_server_id);\r
 \r
-#ifdef SUPPORT_AT_CYWEE\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
     ble_cywee_server_init(g_ble_server_id);\r
 #endif\r
     gattc_reg_id();\r
@@ -2116,7 +2116,7 @@ static void blesrv_service_check_task(void const *arg)
             factory_recv_ota_data(p_msgbuf,msg_len,server_handle);\r
         }\r
 \r
-#ifdef SUPPORT_AT_CYWEE\r
+#ifdef SUPPORT_CYWEE_SERVICE\r
         else if (server_handle == get_cywee_ate_write_handl())\r
         {\r
             cywee_recv_cmd_data(p_msgbuf,msg_len,server_handle);\r
index 3afdbad..41caa6a 100644 (file)
@@ -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();
index 96e2f78..2a4cd41 100644 (file)
 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:
index df1eecd..6746e68 100644 (file)
@@ -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
index 2931705..f1bf6ef 100644 (file)
@@ -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"
 
 
index f48ff0b..fda5e75 100644 (file)
@@ -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;
index 2b9c663..988e82a 100644 (file)
@@ -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"
index d3b5782..74f585f 100644 (file)
@@ -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*/
index a063a8c..609247a 100644 (file)
@@ -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*/