优化蓝牙产测充电测试,马达测试 2734/1 2734/head 2735/target/1 2736/target/1
authorpenglei <1624952103@qq.com>
Thu, 13 Nov 2025 04:12:53 +0000 (12:12 +0800)
committerpenglei <1624952103@qq.com>
Thu, 13 Nov 2025 04:12:53 +0000 (12:12 +0800)
code/sdk/zhihui/drivers/charge/hp4570/hp4570.c
code/sdk/zhihui/drivers/charge/hp4570/hp4570.h
code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c
code/sdk/zhihui/drivers/ppg/pah8009/sensor/pah800x_main.c
code/sdk/zhihui/services/factorytest_service/factorytest_protocol.c

index 0293c75..feadedf 100644 (file)
@@ -821,7 +821,7 @@ void hp4570_set_ideadbat_4x_en(bool en){
   hp4570_write_reg(HP4570_REG_SYS_CTRL6, value);\r
 }\r
 \r
-uint8_t hp4507_get_id(void)\r
+uint8_t hp4570_get_id(void)\r
 {\r
     uint8_t id = 0;\r
     hp4570_i2c_addr = HP4570_I2C_ADDR;\r
index d21cba9..78beef1 100644 (file)
@@ -516,5 +516,5 @@ bool hp4570_read_status_watchdog_int(void);// Watch dog time expire IRQ
 void hp4570_set_iterm_2x_en(bool en);//Terminate charge current X2 enable control\r
 void hp4570_set_ipre_4x_en(bool en);//Pre-charge current X4 enable control\r
 void hp4570_set_ideadbat_4x_en(bool en);//dead battary charge current X4 enable control\r
-uint8_t hp4507_get_id(void);\r
+uint8_t hp4570_get_id(void);\r
 #endif // HP4570_CHARGER_H
\ No newline at end of file
index e071506..8df6b1c 100644 (file)
@@ -1484,6 +1484,26 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) {
             {
                 CWM_OS_dbgPrintf("CUSTOM_GNSS !!! \r\n");
             }
+
+            // if((int)sensorEVT->fData[1] == CUSTOM_ACC_ANY_MOTION)
+            // {
+            //     CWM_OS_dbgPrintf("CUSTOM_ACC_ANY_MOTION !!! \r\n");
+
+            //     if((int)sensorEVT->fData[2] == 1) 
+            //         CWM_Sensor_Enable(IDX_ALGO_ANY_MOTION);
+            //     else
+            //         CWM_Sensor_Disable(IDX_ALGO_ANY_MOTION);      
+            // }
+
+            // if((int)sensorEVT->fData[1] == CUSTOM_ACC)
+            // {
+            //     CWM_OS_dbgPrintf("CUSTOM_ACC !!! \r\n");
+
+            //     if((int)sensorEVT->fData[2] == 1) 
+            //         CWM_Sensor_Enable(IDX_ACCEL);
+            //     else
+            //         CWM_Sensor_Disable(IDX_ACCEL);      
+            // }
              break;
         case IDX_ALGO_SHAKE:
             CWM_OS_dbgPrintf("IDX_ALGO_SHAKE\n");
@@ -2139,6 +2159,13 @@ int cywee_start(void)
     CWM_SettingControl(SCL_DML_DRV_ENABLE, &scl);
     //CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
 
+
+    // memset(&scl, 0, sizeof(scl));
+    // scl.iData[0] = 1;
+    // scl.iData[1] = 1;
+    // scl.iData[2] = 60 * 1000;
+    // CWM_SettingControl(SCL_LOW_POWER_MODE, &scl);
+
     CWM_Sensor_Enable(IDX_REQUEST_SENSOR);
     // //CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
     CWM_Sensor_Enable(IDX_ALGO_WATCH_HANDUP);
index 537405a..91e9e2f 100644 (file)
@@ -35,6 +35,9 @@ static float hr = 0.0f;
 static float hr_grader =0.0f;
 static ppg_mems_data_t ppg_mems_data_alg;
 
+static FILE *logFp = NULL;
+static uint8_t *log_swtich = 0;
+
 // spo2 algorithm
 void *pBuffer                 = NULL;
 void *hr_pBuffer              = NULL;    
@@ -1731,6 +1734,18 @@ static void report_spo2_data(const ppg_mems_data_t *ppg_mems_data_alg, int32_t r
                 ppg_mems_data_alg->ppg_data.data[0], ppg_mems_data_alg->ppg_data.data[1], ppg_mems_data_alg->ppg_data.data[2],
                 ppg_mems_data_alg->ppg_data.exposure_time[0], ppg_mems_data_alg->ppg_data.exposure_time[1], ppg_mems_data_alg->ppg_data.exposure_time[2],
                 (int)(ppg_mems_data_alg->MEMS_Data[0]), (int)(ppg_mems_data_alg->MEMS_Data[1]), (int)(ppg_mems_data_alg->MEMS_Data[2]), ret, mySpO2,myHR,hr_grader,correlation, MEMS_RMS,trust_flag,no_value_reason,SignalPeriodicity, time_accu);
+
+                
+            if(logFp)
+            {
+                fprintf(logFp,"%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %f, %f, %f, %f, %f, %f, %d, %f, %d\n",
+                ppg_mems_data_alg->ppg_frame_count, ppg_mems_data_alg->duration, ppg_mems_data_alg->touch_flag,
+                ppg_mems_data_alg->ppg_data.has_data, ppg_mems_data_alg->ppg_data.has_overflow, ppg_mems_data_alg->ppg_data.overflow_num,
+                ppg_mems_data_alg->ppg_data.data[0], ppg_mems_data_alg->ppg_data.data[1], ppg_mems_data_alg->ppg_data.data[2],
+                ppg_mems_data_alg->ppg_data.exposure_time[0], ppg_mems_data_alg->ppg_data.exposure_time[1], ppg_mems_data_alg->ppg_data.exposure_time[2],
+                (int)(ppg_mems_data_alg->MEMS_Data[0]), (int)(ppg_mems_data_alg->MEMS_Data[1]), (int)(ppg_mems_data_alg->MEMS_Data[2]), ret, mySpO2,myHR,hr_grader,correlation, MEMS_RMS,trust_flag,no_value_reason,SignalPeriodicity, time_accu);
+            }
+                
     }
     else
     {
@@ -1741,6 +1756,15 @@ static void report_spo2_data(const ppg_mems_data_t *ppg_mems_data_alg, int32_t r
                 ppg_mems_data_alg->ppg_data.exposure_time[0], ppg_mems_data_alg->ppg_data.exposure_time[1], ppg_mems_data_alg->ppg_data.exposure_time[2],
                 (int)(ppg_mems_data_alg->MEMS_Data[0]), (int)(ppg_mems_data_alg->MEMS_Data[1]), (int)(ppg_mems_data_alg->MEMS_Data[2]), ret);
 
+            if(logFp)
+            {
+                fprintf(logFp,"%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d\n",
+                ppg_mems_data_alg->ppg_frame_count, ppg_mems_data_alg->duration, ppg_mems_data_alg->touch_flag,
+                ppg_mems_data_alg->ppg_data.has_data, ppg_mems_data_alg->ppg_data.has_overflow, ppg_mems_data_alg->ppg_data.overflow_num,
+                ppg_mems_data_alg->ppg_data.data[0], ppg_mems_data_alg->ppg_data.data[1], ppg_mems_data_alg->ppg_data.data[2],
+                ppg_mems_data_alg->ppg_data.exposure_time[0], ppg_mems_data_alg->ppg_data.exposure_time[1], ppg_mems_data_alg->ppg_data.exposure_time[2],
+                (int)(ppg_mems_data_alg->MEMS_Data[0]), (int)(ppg_mems_data_alg->MEMS_Data[1]), (int)(ppg_mems_data_alg->MEMS_Data[2]), ret);
+            }
         
     }
 }
@@ -1902,6 +1926,12 @@ void pah8009_control(char *mode,uint8_t enable)
 
         pah_sensor_stop();
         work_mode = 0;
+
+        if(logFp)
+        {
+            fclose(logFp);
+            logFp = NULL;
+        }
         // if(uapi_dev_runtime_get_sleep_monitoring_status() && uapi_dev_runtime_get_hrs_passivity_flag())
         // {
         //     pah8009_wearstatus_update(history_wear_status);   
@@ -1925,6 +1955,10 @@ void pah8009_control(char *mode,uint8_t enable)
             ppg_only_sensor_start();
             work_mode = 2;
             time_out = 20;
+            
+            if(log_swtich && logFp == NULL)
+                logFp = fopen("/user/userdata/spo2log.txt", "w");
+
         } else if (strcmp(mode, "leaklight") == 0) {
             // md = FT_LEAK_LIGHT_MODE;
             factory_test_mode(factory_test_leak_light_target_sample, 0, 0, 0, 0);
index a6e8acb..50ec080 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-10 15:57:04\r
+ * @LastEditTime: 2025-11-13 11:44:44\r
  * @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
  * @Description: \r
  * \r
@@ -763,9 +763,15 @@ void factorytest_protocol_common_decode(uint8_t submode,uint8_t testitem,uint8_t
 \r
                 bool state;\r
                 state = uapi_get_charger_plug_status();\r
-                if (!state) \r
-                    send_data[1] |= state << 0;\r
-                \r
+#ifdef ENABLE_HP4570\r
+                id = hp4570_get_id();\r
+                if (state != 1 || id != 0x2)\r
+                    send_data[1] |= 1 << 0;\r
+#else\r
+                if (!state)\r
+                    send_data[1] |= 1 << 0;\r
+#endif\r
+\r
                 uapi_cywee_get_id(&id);\r
                 if(id != 0x44)\r
                     send_data[1] |= 1 << 1;\r
@@ -980,7 +986,7 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                     g_ble_vibrator_timer = osTimerNew((osTimerFunc_t)ble_vibrator_check_timer_callback, osTimerPeriodic, NULL, NULL);\r
 \r
                 if(g_ble_vibrator_timer)\r
-                    osTimerStart(g_ble_vibrator_timer,500);\r
+                    osTimerStart(g_ble_vibrator_timer,1000);\r
                 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_VIBRATOR,\r