From 6ebce9291fcc6bdf730a04a2fe2f6fe7b8015a5f Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Fri, 1 Nov 2024 11:44:07 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E8=80=81=E5=8C=96=E6=B5=8B?= =?utf8?q?=E8=AF=95=E7=BB=93=E6=9E=9C=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../factorytest_protocol.c | 65 +++++++++++-------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c b/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c index fddefc009..f56c05501 100644 --- a/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c +++ b/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: 2024-06-17 14:31:08 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2024-10-31 21:19:20 + * @LastEditTime: 2024-11-01 11:35:05 * @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c * @Description: * @@ -56,22 +56,22 @@ typedef struct factorytest_cmd_header_t typedef struct { - uint32_t flag; //老化测试状态 (未开始 - 0, 已开始 - 1, 停止 - 2,完成 - 3) - uint32_t target_time; //目标时间 - uint32_t left_time; //剩余时间 - uint32_t executions_num;//执行次数 - uint32_t fail_num; //总失败次数 - uint32_t display_error; //LCD失败次数 - uint32_t tp_error; //tp失败次数 - uint32_t crown_error; //表冠失败次数 - uint32_t gsensor_error; //gsensor失败次数 - uint32_t ppg_error; //ppg失败次数 - uint32_t mag_error; //磁力计失败次数 - uint32_t motor_error; //马达失败次数 - uint32_t mic_error; //mic失败次数 - uint32_t speaker_error; //spk失败次数 uint32_t charge_error; //充电失败次数 -}ble_aging_t; + uint32_t speaker_error; //spk失败次数 + uint32_t mic_error; //mic失败次数 + uint32_t motor_error; //马达失败次数 + uint32_t mag_error; //磁力计失败次数 + uint32_t ppg_error; //ppg失败次数 + uint32_t gsensor_error; //gsensor失败次数 + uint32_t crown_error; //表冠失败次数 + uint32_t tp_error; //tp失败次数 + uint32_t display_error; //LCD失败次数 + uint32_t fail_num; //总失败次数 + uint32_t executions_num;//执行次数 + uint32_t left_time; //剩余时间 + uint32_t target_time; //目标时间 + uint32_t flag; //老化测试状态 (未开始 - 0, 已开始 - 1, 停止 - 2,完成 - 3) +} ble_aging_t; #pragma pack() @@ -214,7 +214,8 @@ void aging_task(void) cmd = 1; LOS_Msleep(1000); } - + cmd = 5; + do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_LCD_COLOR_TEST,&cmd,sizeof(cmd)); /*********************TP 老化测试*****************************/ //读TP ID uint16_t tp_id; @@ -375,13 +376,17 @@ void aging_task(void) PRINT("磁力计失败次数 : %d \r\n",aging_t.mag_error); uapi_get_timestampe_ss(¤t_aging_time); - aging_time = aging_t.target_time - (current_aging_time - enter_aging_time); - PRINT("aging_time : %d \r\n",aging_time); if(current_aging_time - enter_aging_time > aging_t.target_time) { aging_t.flag = 3; + aging_time = 0; + aging_t.left_time = 0; + PRINT("老化完成\n"); return; } + aging_time = aging_t.target_time - (current_aging_time - enter_aging_time); + PRINT("aging_time : %d \r\n",aging_time); + } } @@ -916,9 +921,10 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint //查询老化标志 uint8_t send_data[3] = {0}; + send_data[1] = aging_t.flag; + if(aging_t.fail_num != 0) { - send_data[1] = 0xff; send_data[2] = 0x01; } factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, @@ -930,20 +936,27 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint } else if(testitem == 0x04) { //查询老化结果 - - uint8_t *databuf = malloc(sizeof(ble_aging_t)); - uint8_t *ptr = (uint8_t *)&aging_t; - for(int i = 0; i < sizeof(ble_aging_t); i++) + int size = sizeof(ble_aging_t); + uint8_t *databuf = (uint8_t *)malloc(size); + if (databuf == NULL) { - *databuf++ = ptr[i]; + PRINT("malloc failed \n"); + return ; } + uint8_t *buf = databuf; + const uint8_t *structBytes = (const uint8_t *)&aging_t; + + for (int i = 0; i < size; i++) + buf[size - 1 - i] = structBytes[i]; + factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_AGING_TEST, 0x04, databuf, - sizeof(ble_aging_t)); + size); + free(databuf); } else if(testitem == 0x05) { -- 2.17.1