优化蓝牙产测老化测试,优化hx3508 旋转效果 2738/1 2738/head 2739/target/1 2740/target/1
authorpenglei <1624952103@qq.com>
Thu, 13 Nov 2025 08:48:14 +0000 (16:48 +0800)
committerpenglei <1624952103@qq.com>
Thu, 13 Nov 2025 08:48:14 +0000 (16:48 +0800)
code/sdk/drivers/boards/brandy_evb/board_config/board_fd272.h
code/sdk/drivers/drivers/driver/touch/cst92xx_touch/cst92xx_touch1.h
code/sdk/files/fd272/fs/user/music/factory/1khz.mp3 [new file with mode: 0644]
code/sdk/zhihui/UI/producttest/src/testSEChipTest.cpp
code/sdk/zhihui/UI/producttest/src/testView.cpp
code/sdk/zhihui/UI/producttest/src/testold.cpp
code/sdk/zhihui/drivers/ppg/hal/ppg_hal.c
code/sdk/zhihui/drivers/rotary_encoder/hx3508/hx3508.c
code/sdk/zhihui/drivers/rotary_encoder/hx3508/hx3508_hal.c
code/sdk/zhihui/services/factorytest_service/factorytest_protocol.c
code/sdk/zhihui/services/factorytest_service/factorytest_protocol.h

index 8c1942b..c4a0c78 100644 (file)
@@ -289,8 +289,8 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = {
     {   S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
 #endif
 #endif
-    // S_AGPIO_L17   HX3507_INT 
-    // {   S_AGPIO_L17, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
+    // S_AGPIO_L17   PPG 3V3 EN 
+    {   S_AGPIO_L17, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL },
     // S_AGPIO_L12  SDIO_BT
     // {   S_AGPIO_L12, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
     // S_AGPIO_L13   SCLK_BT
@@ -318,6 +318,10 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = {
 //默认开启 LCD 3V3 EN
     {   S_AGPIO_L18, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL },
 
+//1.8V EN
+    {   S_AGPIO_L2, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL },
+
+
 #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 },
index 2f08898..3fd2044 100644 (file)
@@ -13,7 +13,7 @@
 #define HYN_INFO3(fmt, args...)  if(hyn_data->log_level > 1)printf("[HYN]"fmt"\n", ##args)
 #define HYN_INFO4(fmt, args...)  if(hyn_data->log_level > 2)printf("[HYN]"fmt"\n", ##args)
 #define HYN_ERROR(fmt, args...)  printf("[HYN][Error]%s:"fmt"\n",__func__,##args)
-#define HYN_ENTER()              printf("[HYN][enter]%s\n",__func__)
+#define HYN_ENTER()              
 
 #define HYN_POWER_ON_UPDATA     (0) //touch fw updata
 
diff --git a/code/sdk/files/fd272/fs/user/music/factory/1khz.mp3 b/code/sdk/files/fd272/fs/user/music/factory/1khz.mp3
new file mode 100644 (file)
index 0000000..3cc16cb
Binary files /dev/null and b/code/sdk/files/fd272/fs/user/music/factory/1khz.mp3 differ
index 4aa88c7..725363d 100644 (file)
@@ -183,6 +183,7 @@ namespace OHOS
         }
         testSEChipScrollView->Add(chipinfo_label);
         //if(custom_i2c_test()==ERRCODE_SUCC)
+#ifdef SUPPORT_ALIPAY_SEC
         if(custom_exit_lpm() == ERRCODE_SUCC)
         {
             sprintf_s(buf,128,"Alipay IIC true\n");
@@ -191,7 +192,7 @@ namespace OHOS
         {
             sprintf_s(buf,128,"Alipay IIC false\n");
         }
-       
+
         Config = {
             .left = 33,
             .top = 240,
@@ -209,7 +210,7 @@ namespace OHOS
             return nullptr;
         }
         testSEChipScrollView->Add(IIC_label);
-
+#endif
         //"efuse key active : 0"
         //uint8_t ret= uapi_get_cywee_active_state();
         if(uapi_get_cywee_active_state())
index bb053cb..8cd25d5 100644 (file)
@@ -44,7 +44,9 @@ namespace OHOS
         {VISON, "AboutTheWatchButton", "Verison", "AboutTheWatchButton_next", &testView::ChangeSystemAboutView, true},
         {LCD, "LCDButton", "LCD", "LCDButton_next", &testView::ChangeLCDTESTView, true},
         {TP, "TPButton", "TP", "TPButton_next", &testView::ChangeTPTESTView, true},
+#ifdef SUPPORT_MAG_SERVICE
         {MAGETIC, "MAGETICButton", "Magetic", "MAGETICButton_next", &testView::ChangeMGTESTView, true},
+#endif
         {LUMINANCE, "luminanceButton", "luminance", "luminanceButton_next", &testView::ChangLUMTESTView, true},
         {CHARG, "chargingButton", "bat&charger", "chargingButton_next", &testView::ChangchargingTESTView, true},
         {SPEAK, "speakButton", "speak", "speakButton_next", &testView::ChangspeakTESTView, true},
@@ -544,6 +546,7 @@ namespace OHOS
 
     bool testView::ChangeMGTESTView(int16_t thisView)
     {
+#ifdef SUPPORT_MAG_SERVICE
         if (SystemScrollView[thisView] == nullptr)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeMGTESTView");
@@ -556,6 +559,7 @@ namespace OHOS
             SystemScrollView[thisView] = test_MG_view->testmagicInitIView(thisView);
             group->Add(SystemScrollView[thisView]);
         }
+#endif
         return true;
     }
 
@@ -944,12 +948,14 @@ namespace OHOS
                 test_TP_view = nullptr;
                 SystemScrollView[hideView] = nullptr;
                 break;
+#ifdef SUPPORT_MAG_SERVICE
             case MAGETIC:
                 group->Remove(SystemScrollView[hideView]);
                 delete test_MG_view;
                 test_MG_view = nullptr;
                 SystemScrollView[hideView] = nullptr;
                 break;
+#endif
             case LUMINANCE:
                 group->Remove(SystemScrollView[hideView]);
                 delete test_lum_view;
index 04ae43e..55ee56b 100644 (file)
@@ -55,7 +55,9 @@ namespace OHOS
         label_crown_error->SetText((std::string("表冠失败次数:") + std::to_string(aging_t.crown_error)).c_str());
         label_gsensor_error->SetText((std::string("gsensor失败次数:") + std::to_string(aging_t.gsensor_error)).c_str());
         label_ppg_error->SetText((std::string("ppg失败次数:" )+ std::to_string(aging_t.ppg_error)).c_str());
+#ifdef SUPPORT_MAG_SERVICE
         label_mag_error->SetText((std::string("磁力计失败次数:") + std::to_string(aging_t.mag_error)).c_str());
+#endif
         label_motor_error->SetText((std::string("马达失败次数:" )+ std::to_string(aging_t.motor_error)).c_str());
         label_mic_error->SetText((std::string("麦克风失败次数:" )+ std::to_string(aging_t.mic_error)).c_str());
         label_speaker_error->SetText((std::string("喇叭失败次数:") + std::to_string(aging_t.speaker_error)).c_str());
@@ -467,6 +469,7 @@ namespace OHOS
         }
         testoldScrollView->Add(label_ppg_error);
 
+#ifdef SUPPORT_MAG_SERVICE
         Config = {
             .left = 0,
             .top = 1100,
@@ -484,6 +487,7 @@ namespace OHOS
             return false;
         }
         testoldScrollView->Add(label_mag_error);
+#endif
 
         Config = {
             .left = 0,
index c199565..488ed50 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-11-10 13:46:36
+ * @LastEditTime: 2025-11-13 14:46:25
  * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c
  * @Description: 
  * 
@@ -68,10 +68,12 @@ void ppg_power_on(void)
     uapi_gpio_set_dir(GPIO_PIN_PRG_RESET, GPIO_DIRECTION_OUTPUT);
     uapi_gpio_set_val(GPIO_PIN_PRG_RESET, GPIO_LEVEL_HIGH);
     LOS_Mdelay(10);
+#ifndef BOARD_FD272
     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(100);
+#endif
 }
 
 void ppg_power_off(void)
@@ -81,10 +83,12 @@ void ppg_power_off(void)
     uapi_gpio_set_dir(GPIO_PIN_PRG_RESET, GPIO_DIRECTION_OUTPUT);
     uapi_gpio_set_val(GPIO_PIN_PRG_RESET, GPIO_LEVEL_LOW);
     LOS_Mdelay(10);
+#ifndef BOARD_FD272
     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(100);
+#endif
 }
 
 uint8_t ppg_get_hrs(void)
index 1568405..fde6e7c 100644 (file)
@@ -649,8 +649,8 @@ void ots_init(void)
 
     custom_i2c_init(I2C_BUS_2);
 
-    uapi_gpio_set_dir(POWER_3V3_PIN,GPIO_DIRECTION_OUTPUT);
-    uapi_gpio_set_val(POWER_3V3_PIN,GPIO_LEVEL_HIGH);
+    // uapi_gpio_set_dir(POWER_3V3_PIN,GPIO_DIRECTION_OUTPUT);
+    // uapi_gpio_set_val(POWER_3V3_PIN,GPIO_LEVEL_HIGH);
 
     // uapi_gpio_set_dir(INT_PIN,GPIO_DIRECTION_INPUT);
     // uapi_pin_set_ie(INT_PIN,HAL_PIO_IE_ENBALE);
@@ -775,10 +775,8 @@ void ots_start(void)
        hx3508l_calibration();
 
 #ifdef MOT_NO_USE_MODE   // 如果是非中断模式, 初始后, 开启定时器; 
-    ots_timer_start();
+    // ots_timer_start();
 #endif
-
-    // uapi_pin_set_ie(INT_PIN,HAL_PIO_IE_ENBALE);
 }
 /**
  * 停止OTS 的工作, 并进入power down, 功耗<4uA
@@ -788,6 +786,7 @@ void ots_stop(void)
 {
 #ifdef MOT_NO_USE_MODE
        ots_timer_stop();
+    // uapi_pin_set_ie(INT_PIN,HAL_PIO_IE_DISABLE);
        ots_result = 0;
     ots_write_reg(RA_DEBUG_CAS0,0x20); //power down
     //LOS_Mdelay(20);
@@ -926,6 +925,7 @@ void hx3508_open(void)
 {
     ots_init();
     ots_start();           // 启动定时器
+    ots_timer_start();
 }
 
 #else //其他平台,由用户自行添加上面对应的程序
index 76cf131..2ef7690 100644 (file)
@@ -5,6 +5,10 @@
 #include "i2c.h"
 #include "debug_print.h"
 #include "hal_i2c.h"
+#include "hal_gpio.h"
+#include "pinctrl_porting.h"
+
+#define INT_PIN S_AGPIO_R3
 
 static uint8_t g_hx3508_test_started = 0;
 encoder_callback g_encoder_callback = NULL;
@@ -17,6 +21,7 @@ uint32_t hx3508_start(void)
     }
     ots_init();
     ots_start();
+    uapi_pin_set_ie(INT_PIN,HAL_PIO_IE_ENBALE);
     g_hx3508_test_started = 1;
     return ERRCODE_SUCC;
 }
@@ -28,6 +33,7 @@ uint32_t hx3508_stop(void)
         return 0;
     }
     ots_stop();
+    uapi_pin_set_ie(INT_PIN,HAL_PIO_IE_DISABLE);
     g_hx3508_test_started = 0 ;
     return ERRCODE_SUCC;
 }
index 50ec080..4379ca7 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: penglei 1624952103@qq.com\r
  * @Date: 2024-06-17 14:31:08\r
  * @LastEditors: penglei 1624952103@qq.com\r
- * @LastEditTime: 2025-11-13 11:44:44\r
+ * @LastEditTime: 2025-11-13 16:23:13\r
  * @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
  * @Description: \r
  * \r
@@ -462,6 +462,16 @@ void aging_task(void)
             aging_t.charge_error++;\r
             aging_t.fail_num++;\r
         }\r
+\r
+#ifdef ENABLE_HP4570\r
+        uint8_t charge_id = hp4570_get_id();\r
+        if (charge_id != 0x2)\r
+        {\r
+            aging_t.charge_error++;\r
+            aging_t.fail_num++;\r
+        }\r
+\r
+#endif\r
         PRINT("充电 失败次数 : %d \r\n",aging_t.charge_error);\r
 /********************* 马达 老化测试*****************************/\r
         //2min 震2s 停2s\r
@@ -488,16 +498,16 @@ void aging_task(void)
         PRINT("马达失败次数 : %d \r\n",aging_t.motor_error);\r
 \r
 /********************* mic 老化测试*****************************/\r
-        ret = uapi_microhone_switch(1);\r
-        LOS_Msleep(2000 * 60);\r
-        ret = uapi_microhone_switch(0);\r
-        if(ret != 0)\r
-        {\r
-            aging_t.mic_error++;\r
-            aging_t.fail_num++;\r
-        }\r
-        PRINT("mic失败次数 : %d \r\n",aging_t.mic_error);\r
-        uapi_delete_files("/user/userdata/microphone.mp3");\r
+        // ret = uapi_microhone_switch(1);\r
+        // LOS_Msleep(2000 * 60);\r
+        // ret = uapi_microhone_switch(0);\r
+        // if(ret != 0)\r
+        // {\r
+        //     aging_t.mic_error++;\r
+        //     aging_t.fail_num++;\r
+        // }\r
+        // PRINT("mic失败次数 : %d \r\n",aging_t.mic_error);\r
+        // uapi_delete_files("/user/userdata/microphone.mp3");\r
 /********************* spk 老化测试*****************************/\r
         total_time = 2 * 60;\r
         enter_time = 0;\r
@@ -511,13 +521,55 @@ void aging_task(void)
                 do_custom_fileoperate_service_check_msg(CUSTOM_FILEOPERATE_MSG_TYPE_AGING_DATA_SAVE, NULL, 0);\r
                 return;\r
             }\r
+\r
+            int32_t ret = custom_play_audio("user/music/factory/1khz.mp3",100);\r
+            if (ret != 0) \r
+            {\r
+                aging_t.speaker_error++;\r
+                aging_t.fail_num++;\r
+\r
+            }\r
+\r
+            const char *defaultArgs[6] = {"01", "mp3", "16000", "1", "16", "user/userdata/1.mp3"};\r
+\r
+            ret = AudioCaptureSample(6, defaultArgs);\r
+            if (ret != 0) \r
+            {\r
+                aging_t.mic_error++;\r
+                aging_t.fail_num++;\r
+            }\r
+\r
+            LOS_Msleep(3000);\r
+\r
+            int32_t argc = 1;\r
+            uint8_t *argv = (uint8_t*)"stop";\r
+            AudioCaptureSample(argc, (const char **)&argv);\r
+            LOS_Msleep(500);\r
+            custom_stop_play_audio();\r
+\r
+            LOS_Msleep(1000);\r
+\r
+            ret = custom_play_audio("user/userdata/1.mp3",100);\r
+            if (ret != 0) \r
+            {\r
+                aging_t.speaker_error++;\r
+                aging_t.fail_num++;\r
+            }\r
+\r
+            LOS_Msleep(3000);\r
+\r
+            custom_stop_play_audio();\r
+\r
+            uapi_delete_files("user/userdata/1.mp3");\r
+            LOS_Msleep(1000);\r
             uapi_get_timestampe_ss(&current_time);\r
-            uapi_check_spk(1);\r
-            LOS_Msleep(2000);\r
-            uapi_check_spk(0);\r
-            aging_t.speaker_error = 0;\r
+            // uapi_check_spk(1);\r
+            // LOS_Msleep(2000);\r
+            // uapi_check_spk(0);\r
+            // aging_t.speaker_error = 0;\r
             // PRINT("current_time - enter_time[%d]\n",current_time -  enter_time);\r
         }while(current_time - enter_time <= 2 * 60);\r
+        PRINT("mic失败次数 : %d \r\n",aging_t.mic_error);\r
         PRINT("spk失败次数 : %d \r\n",aging_t.speaker_error);\r
 /*********************ppg 老化测试*****************************/\r
 \r
@@ -586,6 +638,7 @@ void aging_task(void)
         PRINT("gsensor失败次数 : %d \r\n",aging_t.gsensor_error);\r
 \r
 /*********************磁力计 老化测试*****************************/\r
+#ifdef SUPPORT_MAG_SERVICE\r
         float fAzimuth,fPitch,fRoll;\r
 \r
         total_time = 2 * 60;\r
@@ -601,14 +654,14 @@ void aging_task(void)
                 return;\r
             }\r
             uapi_get_timestampe_ss(&current_time);\r
-#ifdef SUPPORT_MAG_SERVICE\r
+\r
             do_mag_service_check_msg(MAG_SERVICE_CMD_START_CHECK);\r
             LOS_Msleep(1000);\r
 \r
             mag_get_fAzimuth(&fAzimuth);\r
 \r
             do_mag_service_check_msg(MAG_SERVICE_CMD_STOP_CHECK);\r
-#endif\r
+\r
             if(fAzimuth < 0)\r
             {\r
                 aging_t.mag_error++;\r
@@ -619,7 +672,7 @@ void aging_task(void)
         }while(current_time - enter_time <= 2 * 60);\r
 \r
         PRINT("磁力计失败次数 : %d \r\n",aging_t.mag_error);\r
-\r
+#endif\r
         uapi_get_timestampe_ss(&current_aging_time);\r
         if(current_aging_time - enter_aging_time > aging_t.target_time)\r
         {\r
index b2cbec6..0c39290 100644 (file)
@@ -112,7 +112,9 @@ typedef struct
     uint32_t speaker_error; //spk失败次数 
     uint32_t mic_error;   //mic失败次数 
     uint32_t motor_error;   //马达失败次数 
+#ifdef SUPPORT_MAG_SERVICE
     uint32_t mag_error;     //磁力计失败次数 
+#endif
     uint32_t ppg_error;     //ppg失败次数
     uint32_t gsensor_error;  //gsensor失败次数
     uint32_t crown_error;   //表冠失败次数