优化蓝牙产测与开机动画 300/3
authorpenglei <1624952103@qq.com>
Mon, 17 Jun 2024 10:45:44 +0000 (18:45 +0800)
committerpenglei <1624952103@qq.com>
Mon, 17 Jun 2024 10:45:44 +0000 (18:45 +0800)
code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c
code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h
code/sdk/drivers/peripheral/cywee/service/cywee_service.c
code/sdk/drivers/peripheral/cywee/src/main_dml.c
code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c
code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c
code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c
code/sdk/drivers/peripheral/ppg/service/ppg_service.cpp
code/sdk/drivers/peripheral/ppg/service/ppg_service.h
code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp

index 2d42caf..64073c0 100644 (file)
@@ -1,3 +1,13 @@
+/*\r
+ * @Author: penglei 1624952103@qq.com\r
+ * @Date: 2024-06-17 14:31:08\r
+ * @LastEditors: penglei 1624952103@qq.com\r
+ * @LastEditTime: 2024-06-17 17:51:27\r
+ * @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
+ * @Description: \r
+ * \r
+ * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. \r
+ */\r
 /*\r
  * Copyright (c) @CompanyNameMagicTag 2022. All rights reserved.\r
  * Description: BT HID Service Server Module.\r
@@ -69,9 +79,6 @@ static osTimerId_t g_ble_vibrator_timer = NULL;
 \r
 static osTimerId_t g_ble_acc_timer = NULL;\r
 \r
-static osTimerId_t g_ble_hrs_timer = NULL;\r
-static osTimerId_t g_ble_spo2_timer = NULL;\r
-\r
 static osTimerId_t g_ble_microhone_timer = NULL;\r
 static osTimerId_t g_ble_spk_timer = NULL;\r
 \r
@@ -171,77 +178,6 @@ void ble_acc_check_timer_callback(void)
             6);\r
 }\r
 \r
-void ble_hrs_check_timer_callback(void)\r
-{\r
-    uint8_t databuf[4] = {0};\r
-    int32_t ppg_buf;\r
-    uint8_t i;\r
-    if(ble_hrs_flag != 1)\r
-        return;\r
-    else\r
-    {\r
-        osTimerStop(g_ble_hrs_timer);\r
-        osTimerDelete(g_ble_hrs_timer);\r
-        ble_hrs_flag = 0;\r
-        send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
-\r
-        if(ble_hrs_data > 10000)\r
-        {\r
-            ppg_buf = ble_hrs_data;\r
-\r
-            databuf[0] = (uint8_t)((ppg_buf & 0xFF000000) >> 24);\r
-            databuf[1] = (uint8_t)((ppg_buf & 0x00FF0000) >> 16);\r
-            databuf[2] = (uint8_t)((ppg_buf & 0x0000FF00) >> 8);\r
-            databuf[3] = (uint8_t)((ppg_buf & 0x000000FF) >> 0);\r
-\r
-            PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
-\r
-            factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
-                            BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
-                            0x07,\r
-                            databuf,\r
-                            4);\r
-        }\r
-    }\r
-\r
-}\r
-\r
-void ble_spo2_check_timer_callback(void)\r
-{\r
-    uint8_t databuf[4] = {0};\r
-    int32_t red_buf;\r
-\r
-    if(ble_spo2_flag != 1)\r
-        return;\r
-    else\r
-    {\r
-        osTimerStop(g_ble_spo2_timer);\r
-        osTimerDelete(g_ble_spo2_timer);\r
-        ble_spo2_flag = 0;\r
-        send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_SPO2_TEST);\r
-\r
-        if(ble_spo2_data > 10000)\r
-        {\r
-            red_buf = ble_spo2_data;\r
-\r
-            databuf[0] = (uint8_t)((red_buf & 0xFF000000) >> 24);\r
-            databuf[1] = (uint8_t)((red_buf & 0x00FF0000) >> 16);\r
-            databuf[2] = (uint8_t)((red_buf & 0x0000FF00) >> 8);\r
-            databuf[3] = (uint8_t)((red_buf & 0x000000FF) >> 0);\r
-\r
-            PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
-\r
-            factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
-                            BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
-                            0x08,\r
-                            databuf,\r
-                            4);\r
-        }\r
-    }\r
-\r
-\r
-}\r
-\r
 void ble_microhone_check_timer_callback(void)\r
 {\r
     PRINT("ble_microhone_check_timer_callback \r\n");\r
@@ -261,7 +197,6 @@ void ble_microhone_check_timer_callback(void)
 \r
 void ble_spk_check_timer_callback(void)\r
 {\r
-    PRINT("ble_spk_check_timer_callback \r\n");\r
     uint8_t send_data= 0;\r
 \r
     uapi_check_spk(0);\r
@@ -1230,19 +1165,47 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                         0x02,\r
                         &send_data,\r
                         1);\r
-            } else if(testitem == 0x07)\r
+            } else if(testitem == 0x03)\r
             {\r
                 //打开心率检测\r
-                g_ble_hrs_timer = osTimerNew((osTimerFunc_t)ble_hrs_check_timer_callback, osTimerPeriodic, NULL, NULL);\r
-                osTimerStart(g_ble_hrs_timer,400);\r
-                send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_PPG_TEST);\r
+                send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST);\r
+                FT_RESULTS_t ft_result = hx3695_factroy_test(SINGLE_CHECK_TEST);\r
+                send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
+                uint8_t databuf[4] = {0};\r
 \r
-            } else if(testitem == 0x08)\r
+                databuf[0] = (uint8_t)((ft_result.gr_data_final & 0xFF000000) >> 24);\r
+                databuf[1] = (uint8_t)((ft_result.gr_data_final & 0x00FF0000) >> 16);\r
+                databuf[2] = (uint8_t)((ft_result.gr_data_final & 0x0000FF00) >> 8);\r
+                databuf[3] = (uint8_t)((ft_result.gr_data_final & 0x000000FF) >> 0);\r
+\r
+            PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
+\r
+                factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+                                    BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
+                                    0x03,\r
+                                    databuf,\r
+                                    4);\r
+\r
+            } else if(testitem == 0x04)\r
             {\r
                 //打开血氧检测\r
-                g_ble_spo2_timer = osTimerNew((osTimerFunc_t)ble_spo2_check_timer_callback, osTimerPeriodic, NULL, NULL);\r
-                osTimerStart(g_ble_spo2_timer,400);\r
-                send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_SPO2_TEST);\r
+                send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST);\r
+                FT_RESULTS_t ft_result = hx3695_factroy_test(SINGLE_CHECK_TEST);\r
+                send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
+                uint8_t databuf[4] = {0};\r
+\r
+                databuf[0] = (uint8_t)((ft_result.red_data_final & 0xFF000000) >> 24);\r
+                databuf[1] = (uint8_t)((ft_result.red_data_final & 0x00FF0000) >> 16);\r
+                databuf[2] = (uint8_t)((ft_result.red_data_final & 0x0000FF00) >> 8);\r
+                databuf[3] = (uint8_t)((ft_result.red_data_final & 0x000000FF) >> 0);\r
+\r
+                PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
+\r
+                factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+                                    BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
+                                    0x04,\r
+                                    databuf,\r
+                                    4);\r
 \r
             } else if(testitem == 0x05)\r
             {\r
index 88a353e..905d38c 100644 (file)
@@ -507,7 +507,7 @@ void cywee_hrs_wearstatus_update(int hrs_data,int wearstatus);
 void cywee_set_user_info(int user_info[5]);
 void cywee_get_sleep_data(void);
 void cywee_reset_daily_data(void);
-void cywee_inactivity_mode_change(int mode);
+void cywee_inactivity_mode_change(int mode,int enable);
 void cywee_activity_mode_change(int mode);
 void cywee_time_sync(void);
 void cywee_hand_updown_switch(int cmd);
@@ -528,6 +528,7 @@ int get_distance_data(void );
 void cywee_get_chipinfo(char *databuf,uint8_t len);
 void cywee_get_acc_switch(uint8_t cmd);
 void cywee_set_sedentary_interval(int time);
+
 extern uint8_t hrs_mode_state;
 
 #pragma pack()
index 32af17b..f79e13f 100644 (file)
@@ -337,15 +337,15 @@ static void cywee_service_check_task(void const *arg)
             break;
 
             case CYWEE_SERVICE_CMD_SEDENTARY_MODE:
-                cywee_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY);
+                cywee_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY,mail.data[0]);
             break;
 
             case CYWEE_SERVICE_CMD_NAP_MODE:
-                cywee_inactivity_mode_change(INACTIVITY_MODE_NAP);
+                cywee_inactivity_mode_change(INACTIVITY_MODE_NAP,mail.data[0]);
             break;
 
             case CYWEE_SERVICE_CMD_SLEEPING_MODE:
-                cywee_inactivity_mode_change(INACTIVITY_MODE_SLEEPING);
+                cywee_inactivity_mode_change(INACTIVITY_MODE_SLEEPING,mail.data[0]);
             break;
 
             case CYWEE_SERVICE_CMD_OPEN_HAND_UPDOWN:
index e2a704a..8705a79 100644 (file)
@@ -255,9 +255,15 @@ void activity_mode_setstatus(int cmd)
     CWM_SettingControl(SCL_ACTIVITY_PAUSE, &scl);
 }
 
-void cywee_inactivity_mode_change(int mode)
+void cywee_inactivity_mode_change(int mode,int enable)
 {
     cywee_time_sync();
+
+    if(enable == 0)
+        CWM_Sensor_Disable(IDX_ALGO_INACTIVITY_OUTPUT);
+    else
+        CWM_Sensor_Enable(IDX_ALGO_INACTIVITY_OUTPUT);
+
     switch (mode)
     {
         //无作用
@@ -991,7 +997,7 @@ int cywee_main_dml(void)
     // //CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
     CWM_Sensor_Enable(IDX_ALGO_WATCH_HANDUP);
     CWM_Sensor_Enable(IDX_ALGO_ACTIVITY_OUTPUT);
-    CWM_Sensor_Enable(IDX_ALGO_INACTIVITY_OUTPUT);
+    //CWM_Sensor_Enable(IDX_ALGO_INACTIVITY_OUTPUT);
     // CWM_Sensor_Enable(IDX_ALGO_SEDENTARY);
     // CWM_Sensor_Enable(IDX_ALGO_SLEEP);
     CWM_Sensor_Enable(IDX_ACCEL);
index d0b3fed..55846fa 100644 (file)
@@ -96,6 +96,7 @@ int mmc5603_start(void)
        {       \r
                for(i=0;i<4;i++)\r
                {\r
+                       PRINT("saveData[%d] : %f \r\n",i,saveData[i]);\r
                        mag_hmm[i] = saveData[i]; \r
                }\r
        }\r
@@ -273,6 +274,8 @@ int SavePara(float *p)
 \r
 int SavePara_infile(float *p,uint32_t len)\r
 {      \r
+       for(int i = 0; i < len ; i++)\r
+               PRINT("p[%d] : %f \r\n",i,p[i]);\r
        FILE * fp = fopen(MMC_DATA_PATH,"wb");\r
        int ret = 0;\r
     if(fp==NULL)\r
index 77cf757..a2763bc 100644 (file)
@@ -3634,4 +3634,4 @@ void hx3695_lab_test_Int_handle(void)
 }\r
 #endif\r
 \r
-#endif  //CHIP_HX3695\r
+#endif  //CHIP_HX3695
\ No newline at end of file
index 276527e..d3b3b95 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-06-13 10:16:15
+ * @LastEditTime: 2024-06-17 17:43:19
  * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c
  * @Description: 
  * 
@@ -58,6 +58,8 @@ void ppg_send_cmd_to_driver(char* mode, uint8_t enable)
         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;
     } 
 
    
@@ -70,7 +72,7 @@ void ppg_send_cmd_to_driver(char* mode, uint8_t enable)
     } else {
 
     //    ppg_service_running_stat = false;
-       if(md == HRS_MODE|| md == FT_LEAK_LIGHT_MODE || md == FT_GRAY_CARD_MODE || md == WEAR_MODE)
+       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();
index 9aa9e1a..fc13389 100644 (file)
@@ -332,6 +332,9 @@ static void ppg_service_check_task(void  *arg)
         }else if (mail == PPG_SERVICE_CMD_TYPE_DO_LED_OFF_MODE_TEST){
             cmd = "ledoff";
             enable = 0;
+        }else if (mail == PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST){
+            cmd = "single";
+            enable = 1;
         }else if (mail == PPG_SERVICE_CMD_TYPE_STOP_WEAR_MODE_TEST){
             if (keep_in_wear_det_mod == 0) continue;
             cmd = "wear";
index 965e70d..bf0e0a1 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: penglei 1624952103@qq.com
  * @Date: 2024-03-27 09:07:00
  * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-06-13 09:42:57
+ * @LastEditTime: 2024-06-17 17:46:26
  * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/service/ppg_service.h
  * @Description: 
  * 
@@ -42,6 +42,7 @@ extern "C" {
 #define PPG_SERVICE_CMD_TYPE_DO_WEAR_MODE_TEST 0x20
 #define PPG_SERVICE_CMD_TYPE_STOP_WEAR_MODE_TEST 0x21
 #define PPG_SERVICE_CMD_TYPE_DO_LED_OFF_MODE_TEST 0x22
+#define PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST 0x23
 
 errcode_t uapi_ppg_service_init(void);
 void uapi_ppg_service_deinit(void);
index 9107f15..04379c5 100755 (executable)
@@ -115,7 +115,7 @@ BootAnimatorListener(){}
 private:
     void OnAnimatorStop(OHOS::UIView &view)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnAnimatorStop");
+        boot_animation_flag = true;
         
         ClearAll();
 
@@ -130,7 +130,6 @@ private:
         OHOS::RootView::GetInstance()->Remove(boot_group);
         delete boot_group;
         boot_group = nullptr;
-        boot_animation_flag = true;
     }
 
 }; 
@@ -147,7 +146,6 @@ static const char ** CreateImagePathsArray(const char *basePath, const char *fil
         else
             snprintf(buffer, sizeof(buffer), "%s6S240%d.%s", basePath, i , fileExtension);
         imagePaths[i] = strdup(buffer);
-        //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP," imagePaths[%d] = %s ", i, imagePaths[i]);
     }
     return imagePaths;
 }
@@ -221,10 +219,6 @@ static void UikitRTCCallBack(uintptr_t data)
     if (!g_initialized || !g_isScreenOn) {
         return;
     }
-    if(get_printf())
-    {
-        printf("[g_timeInterval is %d ]\r\n",g_timeInterval);
-    }
     uapi_rtc_start(g_rtcHandle, g_timeInterval, UikitRTCCallBack, 0);
     GraphicService::GetInstance()->UpdateGraphicEvent();
 }
@@ -271,7 +265,6 @@ void NotifyScreenOn(void)
         OHOS::LowPowerManager::GetInstance()->ExitLowPower();
         uapi_rtc_start(g_rtcHandle, g_timeInterval, static_cast<rtc_callback_t>(UikitRTCCallBack), 0);
     }
-
     GraphicService::GetInstance()->NotifyScreenOn();
 }
 
@@ -358,7 +351,6 @@ void HideGraphicOtaLogo()
 
 static void boot_animation_task(void *arg)
 {
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "boot_animation_task start");
     unused(arg);
 
     boot_group = ReBootAnimatorViewInit();
@@ -375,14 +367,12 @@ static void boot_animation_task(void *arg)
         },
         false);
 
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "boot_animation_task end!!");
 }
 
 void ShowGraphicLogo(void)
 {
     while(boot_animation_flag == false)
     {
-        //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowGraphicLogo : %d ",boot_animation_flag);
         LOS_Mdelay(1);
     }
     if (g_showLogo) {
@@ -410,7 +400,6 @@ void ShowGraphicOTALogo(void)
 {
     while(boot_animation_flag == false)
     {
-        //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowGraphicLogo : %d ",boot_animation_flag);
         LOS_Mdelay(1);
     }
     if (g_showOtaLogo) {
@@ -448,7 +437,6 @@ void boot_animation_init(void)
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"create boot_animation_task failed %d!",ret);
         return ;
     }
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"create boot_animation_task succed");
 }
 
 #ifdef __cplusplus