Merge #1308 into sdk602patch0911 from refs/changes/1308/head 1309/target/1
author彭磊 <1624952103@qq.com>
Thu, 31 Oct 2024 13:38:39 +0000 (13:38 +0000)
committer袁清梦 <3449750381@qq.com>
Thu, 31 Oct 2024 13:38:39 +0000 (13:38 +0000)
优化老化测试

* refs/changes/1308/head: (3 commits squashed)

  - 优化老化测试

  - 优化马达震动

  - 优化pwm stop返回值的处理

Signed-off-by: aliyun6865282430 <1624952103@qq.com>
Reviewed-by: Caisking <3449750381@qq.com>
Reviewed-by: 罗正 <1732036298@qq.com>
Reviewed-by: aliyun8003852482 <1224667075@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Reviewed-by: aliyun6865282430 <1624952103@qq.com>
Merged-by: Caisking <3449750381@qq.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1308
code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c
code/sdk/drivers/peripheral/vibrator/vibrator.c

index ad33292..fddefc0 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-30 18:37:04\r
+ * @LastEditTime: 2024-10-31 21:19:20\r
  * @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
  * @Description: \r
  * \r
@@ -56,7 +56,7 @@ typedef struct factorytest_cmd_header_t
 \r
 typedef struct\r
 {\r
-    uint32_t flag; //老化测试状态 (完成 - 0xfdfd0000, 停止 - 0xfdfd0001, 开始-0xfdfd0002, 结束-0xfdfd0003)\r
+    uint32_t flag; //老化测试状态 (未开始 - 0, 已开始 - 1, 停止 - 2,完成 - 3)\r
     uint32_t target_time;    //目标时间\r
     uint32_t left_time;    //剩余时间\r
     uint32_t executions_num;//执行次数 \r
@@ -168,14 +168,15 @@ void ble_acc_check_timer_callback(void)
 void aging_task(void)\r
 {\r
     errcode_t ret = 0;\r
-    uint32_t enter_age_time = 0;\r
-    uint32_t exit_age_time = 0;\r
+    uint32_t enter_aging_time = 0;\r
+    uint32_t current_aging_time = 0;\r
     int cmd = 0;\r
-    while(aging_t.flag == 0xfdfd0002)\r
+    uapi_get_timestampe_ss(&enter_aging_time);\r
+    while(aging_t.flag == 1)\r
     //while(aging_t.flag == 0xfdfd0002)\r
     {\r
 \r
-        uapi_get_timestampe_ss(&enter_age_time);\r
+\r
         aging_t.left_time = aging_time;\r
         PRINT("老化目标时间 : %d \r\n",aging_t.target_time);\r
         PRINT("老化剩余时间 : %d \r\n",aging_t.left_time);\r
@@ -204,6 +205,8 @@ void aging_task(void)
         do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_LCD_TEST,&cmd,sizeof(cmd));\r
         for(int i = 1; i < 120 ; i++)\r
         {\r
+            if(aging_t.flag != 1)\r
+                return;\r
             do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_LCD_COLOR_TEST,&cmd,sizeof(cmd));\r
             cmd ++;\r
             cmd = cmd % 5;         \r
@@ -253,6 +256,8 @@ void aging_task(void)
         uapi_get_timestampe_ss(&enter_time);\r
         do\r
         {\r
+            if(aging_t.flag != 1)\r
+                return;\r
             uapi_get_timestampe_ss(&current_time);\r
             // uapi_get_timestampe_ss(&enter_time);\r
             custom_VibratorFunc_int(4);\r
@@ -280,6 +285,8 @@ void aging_task(void)
         uapi_get_timestampe_ss(&enter_time);\r
         do\r
         {\r
+            if(aging_t.flag != 1)\r
+                return;\r
             uapi_get_timestampe_ss(&current_time);\r
             uapi_check_spk(1);\r
             LOS_Msleep(2000);\r
@@ -296,6 +303,8 @@ void aging_task(void)
         uapi_get_timestampe_ss(&enter_time);\r
         do\r
         {\r
+            if(aging_t.flag != 1)\r
+                return;\r
             uapi_get_timestampe_ss(&current_time);\r
             send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST);\r
             LOS_Msleep(200);\r
@@ -327,6 +336,8 @@ void aging_task(void)
         uapi_get_timestampe_ss(&enter_time);\r
         do\r
         {\r
+            if(aging_t.flag != 1)\r
+                return;\r
             uapi_get_timestampe_ss(&current_time);\r
             get_gsonsen_xyz(&g);\r
             if(g.x == 0 && g.y == 0 && g.z == 0)\r
@@ -348,6 +359,8 @@ void aging_task(void)
         uapi_get_timestampe_ss(&enter_time);\r
         do\r
         {\r
+            if(aging_t.flag != 1)\r
+                return;\r
             uapi_get_timestampe_ss(&current_time);\r
             mmc5603_getdata(&fAzimuth,&fPitch,&fRoll);\r
             if(fAzimuth < 0)\r
@@ -361,11 +374,12 @@ void aging_task(void)
 \r
         PRINT("磁力计失败次数 : %d \r\n",aging_t.mag_error);\r
 \r
-        uapi_get_timestampe_ss(&exit_age_time);\r
-        aging_time -= (exit_age_time - enter_age_time);\r
-        if(aging_time <= 0 || aging_time > 2 * 60 * 60)\r
+        uapi_get_timestampe_ss(&current_aging_time);\r
+        aging_time = aging_t.target_time - (current_aging_time - enter_aging_time);\r
+        PRINT("aging_time : %d \r\n",aging_time);\r
+        if(current_aging_time - enter_aging_time > aging_t.target_time)\r
         {\r
-            aging_t.flag = 0xfdfd0000;\r
+            aging_t.flag = 3;\r
             return;\r
         }\r
     }\r
@@ -389,7 +403,7 @@ errcode_t aging_test_init(void)
     }\r
 \r
 \r
-    aging_t.flag = 0xfdfd0002;\r
+    aging_t.flag = 1;\r
     \r
     return ERRCODE_SUCC;\r
 }\r
@@ -415,6 +429,9 @@ void factorytest_protocol_common_decode(uint8_t submode,uint8_t testitem,uint8_t
                 ChargerEventPublish(TOPIC_EVENT_CHARGE_UNPLUG,0); //进入产测模式 关闭充电弹窗\r
                 uapi_dev_runtime_set_factory_test_status(1); //设置产测模式runtime\r
                 svr_ble_adv_factory_test_start_param(); //设置蓝牙广播 避免出现连接问题\r
+                uapi_hfp_connect_();\r
+                LOS_Msleep(500);\r
+                uapi_a2dp_snk_connect_();\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON,\r
                         BLE_TEST_CMD_COMMON_SUB_MODE_SWITCH_MODE,\r
                         0x01,\r
@@ -886,7 +903,7 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                 //停止老化\r
                 uint8_t send_data = 0x00;\r
 \r
-                aging_t.flag = 0xfdfd0001;\r
+                aging_t.flag = 2;\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_AGING_TEST,\r
@@ -913,13 +930,21 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             } else if(testitem == 0x04)\r
             {\r
                 //查询老化结果\r
+                \r
+                uint8_t *databuf = malloc(sizeof(ble_aging_t));\r
+                uint8_t *ptr = (uint8_t *)&aging_t;\r
+                for(int i = 0; i < sizeof(ble_aging_t); i++) \r
+                {\r
+                    *databuf++ = ptr[i];\r
+                }\r
+\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_AGING_TEST,\r
                         0x04,\r
-                        &aging_t,\r
-                        sizeof(aging_t));\r
-\r
+                        databuf,\r
+                        sizeof(ble_aging_t));\r
+                free(databuf);\r
             } else if(testitem == 0x05)\r
             {\r
                 //清除老化结果\r
@@ -1815,6 +1840,8 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             {\r
                 uint8_t send_data = 0x00;\r
                 uapi_hfp_connect_();\r
+                LOS_Msleep(500);\r
+                uapi_a2dp_snk_connect_();\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_SPEAKER,\r
                         0x03,\r
index 17d05d3..c4e9cf7 100644 (file)
@@ -146,7 +146,7 @@ static int pwm_stop(void)
 #ifdef VIB_DEBUG
     PRINT("+++++++ pwm stoped +++++++ \r\n");
 #endif
-    return 0;
+    return ret;
 }
 
 static uint8_t vibrating = 0;
@@ -182,7 +182,7 @@ void g_VibratorFunc(uint16_t duty , uint16_t cycle_time_ms,uint16_t duration_tim
         {
             pwm_stop();
         }
-        pwm_stop();
+
         vibrating = 0;
     }
 }