Merge #1228 into sdk602patch0911 from refs/changes/1228/head
author彭磊 <1624952103@qq.com>
Mon, 21 Oct 2024 02:19:27 +0000 (02:19 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Mon, 21 Oct 2024 02:19:27 +0000 (02:19 +0000)
优化小睡数据存储

* refs/changes/1228/head: (2 commits squashed)

  - 优化小睡数据存储

  - 优化蓝牙产测老化测试,按键测试

Signed-off-by: aliyun6865282430 <1624952103@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1228
code/sdk/application/wearable/fd230app/nativeui/producttest/src/testmicrophone.cpp
code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c
code/sdk/drivers/peripheral/cywee/src/main_dml.c
code/sdk/drivers/peripheral/utils/custom_utils.c

index 103088d..e942135 100644 (file)
@@ -312,12 +312,14 @@ extern "C"
         if(isopen)
         {
             // AlarmClockModel::GetInstance()->testPlayerStart("/user/userdata/microphone.mp3");
-            FindWatchViewEventListener::GetInstance().PopInterPlayMusic("/user/userdata/microphone.mp3");
+            // FindWatchViewEventListener::GetInstance().PopInterPlayMusic("/user/userdata/microphone.mp3");
+            AlarmClockModel::GetInstance()->AlarmPlayerStart();
         }
         else
         {
             // AlarmClockModel::GetInstance()->AlarmPlayerStop();
-            FindWatchViewEventListener::GetInstance().PopInterCancelMusic();
+            // FindWatchViewEventListener::GetInstance().PopInterCancelMusic();
+            AlarmClockModel::GetInstance()->AlarmPlayerStop();
         }
 
     }
index 56ee2aa..489c04d 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: 2024-10-12 20:34:45\r
+ * @LastEditTime: 2024-10-20 18:54:23\r
  * @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
  * @Description: \r
  * \r
@@ -41,6 +41,8 @@
 #ifdef SUPPORT_TCPIP\r
 #include "lwip/api_shell.h"\r
 #endif\r
+#include "input_app.h"\r
+#include "PhoneServiceC.h"\r
 \r
 #pragma pack(1)\r
 typedef struct factorytest_cmd_header_t\r
@@ -171,6 +173,7 @@ void aging_task(void)
     while(aging_t.flag == 0xfdfd0002 && aging_time)\r
     //while(aging_t.flag == 0xfdfd0002)\r
     {\r
+        int cmd = 0;\r
         uint32_t msc;\r
         uapi_get_timestampe_ss(&msc);\r
         aging_t.enter_age_time = msc;\r
@@ -195,6 +198,9 @@ void aging_task(void)
             }\r
         }\r
 \r
+/*********************LCD 老化测试*****************************/\r
+\r
+        //读LCD ID\r
         uint32_t id;\r
         lcd_getid(&id);\r
         if(id != 0x1133)\r
@@ -202,22 +208,19 @@ void aging_task(void)
             aging_t.display_error++;\r
             aging_t.fail_num++;\r
         }\r
-        mcu_pm_lcd_on(0,0);\r
-        mcu_pm_lcd_off(0,0);\r
         PRINT("aging_t.display_error : %d \r\n",aging_t.display_error);\r
 \r
-        send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_GRAYCARD_TEST);\r
-        FT_RESULTS_t ft_result = hx3695_factroy_test(LEAK_LIGHT_TEST);\r
-        send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
- \r
-        if(ft_result.gr_data_final < 10000 || ft_result.red_data_final < 10000 || ft_result.ir_data_final < 10000)\r
+        //单色屏测试\r
+        cmd = 1;\r
+        do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_LCD_TEST,&cmd,sizeof(cmd));\r
+        for(cmd = 1; cmd < 6 ; cmd++)\r
         {\r
-            aging_t.ppg_error++;\r
-            aging_t.fail_num++;\r
+            do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_LCD_COLOR_TEST,&cmd,sizeof(cmd));\r
+            LOS_Msleep(1000);\r
         }\r
-            \r
-        PRINT("aging_t.ppg_error : %d \r\n",aging_t.ppg_error);\r
-\r
+        \r
+/*********************TP 老化测试*****************************/\r
+        //读TP ID\r
         uint16_t tp_id;\r
         touch_getid(&tp_id);\r
         if(tp_id != 0x6456)\r
@@ -227,6 +230,35 @@ void aging_task(void)
         }\r
         PRINT("aging_t.tp_error : %d \r\n",aging_t.tp_error);\r
 \r
+/********************* 马达 老化测试*****************************/\r
+        //震6秒\r
+        for(cmd = 0; cmd < 2 ; cmd++)\r
+        {\r
+            // ui_api_vibrate_once_func(3);\r
+            ui_api_vibrate_once_func();\r
+            LOS_Msleep(1000);\r
+        }\r
+        PRINT("aging_t.motor_error : %d \r\n",aging_t.motor_error);\r
+/********************* spk 老化测试*****************************/\r
+        uapi_check_spk(1);\r
+        LOS_Msleep(2000);\r
+        uapi_check_spk(0);\r
+        aging_t.speaker_error = 0;\r
+        PRINT("aging_t.speaker_error : %d \r\n",aging_t.speaker_error);\r
+/*********************ppg 老化测试*****************************/\r
+        //漏光测试\r
+        send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_GRAYCARD_TEST);\r
+        FT_RESULTS_t ft_result = hx3695_factroy_test(LEAK_LIGHT_TEST);\r
+        send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
+ \r
+        if(ft_result.gr_data_final > 5000 || ft_result.red_data_final > 5000 || ft_result.ir_data_final > 5000)\r
+        {\r
+            aging_t.ppg_error++;\r
+            aging_t.fail_num++;\r
+        }\r
+        PRINT("aging_t.ppg_error : %d \r\n",aging_t.ppg_error);\r
+\r
+/*********************gsensor 老化测试*****************************/\r
         gsenson_t g;\r
         get_gsonsen_xyz(&g);\r
         if(g.x == 0 && g.y == 0 && g.z == 0)\r
@@ -236,6 +268,7 @@ void aging_task(void)
         }\r
         PRINT("aging_t.gsensor_error : %d \r\n",aging_t.gsensor_error);\r
 \r
+/*********************磁力计 老化测试*****************************/\r
         float fAzimuth,fPitch,fRoll;\r
         mmc5603_getdata(&fAzimuth,&fPitch,&fRoll);\r
         if(fAzimuth < 0)\r
@@ -245,13 +278,6 @@ void aging_task(void)
         }\r
         PRINT("aging_t.mag_error : %d \r\n",aging_t.mag_error);\r
 \r
-        // uapi_vibrationModeSet(3);\r
-        ui_api_vibrate_once_func();\r
-        aging_t.motor_error = 0;\r
-        PRINT("aging_t.motor_error : %d \r\n",aging_t.motor_error);\r
-\r
-        aging_t.speaker_error = 0;\r
-        PRINT("aging_t.speaker_error : %d \r\n",aging_t.speaker_error);\r
 \r
         uint32_t flash_id;\r
         flash_getid(&flash_id);\r
@@ -572,6 +598,17 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                         &send_data,\r
                         1);\r
             }\r
+            if (testitem == 0x06)\r
+            {\r
+                uint8_t send_data = 0x00;\r
+                uapi_hfp_connect_();\r
+                factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+                        BLE_TEST_CMD_SOFT_TEST_SUB_MODE_BLE,\r
+                        0x06,\r
+                        &send_data,\r
+                        1);\r
+            }\r
+\r
             break;\r
 \r
         case BLE_TEST_CMD_SOFT_TEST_SUB_MODE_VIBRATOR:\r
@@ -650,9 +687,12 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                 //开启电源键测试\r
                 uint8_t send_data = 0;\r
 \r
-                uapi_button_register_event_cb(pwr_button_callback_press, 1);\r
-                uapi_button_register_event_cb(pwr_button_callback_click_2, 3);\r
-                uapi_button_register_event_cb(pwr_button_callback_long_press_2s, 5);\r
+                uapi_button_unregister_event_cb(BUTTON_PWR_CLICKUP_2);\r
+                uapi_button_unregister_event_cb( BUTTON_PWR_LONGPRESS_2S);\r
+\r
+                uapi_button_register_event_cb(pwr_button_callback_press, BUTTON_PWR_CLICKUP);\r
+                uapi_button_register_event_cb(pwr_button_callback_click_2, BUTTON_PWR_CLICKUP_2);\r
+                uapi_button_register_event_cb(pwr_button_callback_long_press_2s, BUTTON_PWR_LONGPRESS_2S);\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY,\r
@@ -664,9 +704,12 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                 //开启功能键测试\r
                 uint8_t send_data = 0;\r
 \r
-                uapi_button_register_event_cb(func_button_callback_press, 24);\r
-                uapi_button_register_event_cb(func_button_callback_click_2, 26);\r
-                uapi_button_register_event_cb(func_button_callback_long_press_2s, 28);\r
+                uapi_button_unregister_event_cb(BUTTON1_CLICKUP_2);\r
+                uapi_button_unregister_event_cb(BUTTON1_LONGPRESS_2S);\r
+\r
+                uapi_button_register_event_cb(func_button_callback_press, BUTTON1_CLICKUP);\r
+                uapi_button_register_event_cb(func_button_callback_click_2, BUTTON1_CLICKUP_2);\r
+                uapi_button_register_event_cb(func_button_callback_long_press_2s, BUTTON1_LONGPRESS_2S);\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY,\r
@@ -1254,7 +1297,7 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             {\r
                 //漏光测试\r
                 send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_LEAKLIGHT_TEST);\r
-                LOS_Msleep(500);\r
+                LOS_Msleep(200);\r
                 FT_RESULTS_t ft_result = hx3695_factroy_test(LEAK_LIGHT_TEST);\r
                 send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
                 uint8_t databuf[12] = {0};\r
@@ -1274,11 +1317,11 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                 databuf[10] = (uint8_t)((ft_result.ir_data_final & 0x0000FF00) >> 8);\r
                 databuf[11] = (uint8_t)((ft_result.ir_data_final & 0x000000FF) >> 0);\r
 \r
-                PRINT("%2X %2X %2X %2X %2X %2X %2X %2X %2X %2X %2X %2X\r\n",\r
-                databuf[0],databuf[1],databuf[2],databuf[3],\r
-                databuf[4],databuf[5],databuf[6],databuf[7],\r
-                databuf[8],databuf[9],databuf[10],databuf[11]\r
-                );\r
+                // PRINT("%2X %2X %2X %2X %2X %2X %2X %2X %2X %2X %2X %2X\r\n",\r
+                // databuf[0],databuf[1],databuf[2],databuf[3],\r
+                // databuf[4],databuf[5],databuf[6],databuf[7],\r
+                // databuf[8],databuf[9],databuf[10],databuf[11]\r
+                // );\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                                     BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
index 8c6c634..5bee5e3 100644 (file)
@@ -150,10 +150,18 @@ void clean_sleep_data(void)
 
 void cywee_save_nap_data(cywee_inactivity_accumulate_time_t c_inactivity_accumulate_time_t)
 {
-    char day[12] = {0};
-    uapi_get_YYMMDD_Time(day, '\0');
+    if (access(nap_file_path, 0) == -1) //如果小睡文件不存在,创建睡眠文件夹
+    {
+        memset(dir_path,0,sizeof(dir_path));
+        memset(day,0,sizeof(day));
+        memset(nap_file_path,0,sizeof(nap_file_path));
+
+        uapi_get_YYMMDD_Time(day, '\0');
+        sprintf_s(dir_path, 64, SLEEP_DIR_PATH, day);
+        uapi_create_folder(dir_path);
+        sprintf_s(nap_file_path, 64, NAP_PATH, day);
+    }
 
-    sprintf_s(nap_file_path, 64, NAP_PATH, day);
 
     uint32_t size = uapi_get_file_size(nap_file_path);
 
@@ -756,7 +764,6 @@ void cywee_time_sync(void)
         uapi_get_YYMMDD_Time_extend(day, '\0', 0);
 
     sprintf_s(dir_path, 64, SLEEP_DIR_PATH, day);
-    uapi_create_folder("user/userdata/sleep");
     uapi_create_folder(dir_path);
 }
 
index ee4e0ee..f7cc525 100644 (file)
@@ -2872,18 +2872,56 @@ void uapi_vibrator_test(uint32_t test_time)
     }
 }
 
-void uapi_create_folder(char *dir_path)
+//创建指定路径文件夹
+void uapi_create_folder(char *dir_path) 
 {
+    if(dir_path == NULL)
+        return;
+
+    char *path_copy = strdup(dir_path);
+    char *token;
+    char *saveptr;
+
+    token = strtok_r(path_copy, "/", &saveptr);
+    if (token == NULL) 
+    {
+        free(path_copy);
+        return;
+    }
+
+    char current_path[256] = "";
+    strcat(current_path, token);
+    strcat(current_path, "/");
+
     struct stat info;
-    if (stat(dir_path, &info) != 0)
+    if (stat(current_path, &info)!= 0) 
+    {
+        if (mkdir(current_path, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH)!= 0) 
+        {
+            PRINT("mkdir %s failed\n", current_path);
+            free(path_copy);
+            return;
+        }
+    }
+
+    while ((token = strtok_r(NULL, "/", &saveptr))!= NULL) 
     {
-        if(mkdir(dir_path, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) != 0)
+        strcat(current_path, token);
+        strcat(current_path, "/");
+        if (stat(current_path, &info)!= 0) 
         {
-            PRINT("mkdir %s failed \n",dir_path);
+            if (mkdir(current_path, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH)!= 0) 
+            {
+                PRINT("mkdir %s failed\n", current_path);
+                free(path_copy);
+                return;
+            }
         }
     }
-}
 
+    free(path_copy);
+    PRINT("mkdir %s succed\n", dir_path);
+}
 
 //获取小睡数据长度(协议用)
 uint32_t uapi_get_file_size(char *filepath)