0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0xd5,0x00,0x03,0x00,\r
0x03,0x00,0x00,0x55,0x06,0xce,0x00,0x00,0x04,0x8a,0x00,0x00,0xd5,0x00,0x00,0x00,\r
0x02,0x80,0x00,0x00,0x06,0xce,0x00,0x00,0x06,0xce,0x00,0x00,0xd5,0x00,0x03,0x00,\r
-0x03,0x00,0x00,0x55,0x06,0xce,0x00,0x00,0x04,0x8a,0x00,0x00,0xd8,0x00,0x0b,0x00,\r
-0x06,0x00,0x00,0x4e,0x00,0xaf,0x00,0x00,0x01,0x5d,0x00,0x00,0x00,0x0c,0x00,0x00,\r
+0x03,0x00,0x00,0x55,0x06,0xce,0x00,0x00,0x04,0x8a,0x00,0x00,0xd8,0x00,0x0a,0x00,\r
+0x06,0x00,0x00,0x47,0x00,0xaf,0x00,0x00,0x01,0x5d,0x00,0x00,0x00,0x0c,0x00,0x00,\r
0xfe,0xab,0x02,0x80,0xff,0xde,0xf5,0x00,0x00,0x3c,0x00,0x00,0x11,0x11,0x00,0x01,\r
0x00,0x1e,0x00,0x00,0xee,0xef,0xff,0xfe,0x00,0x2d,0x00,0x00,0x00,0x00,0x00,0x00,\r
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xc9,0x02,0xb8,0x02,0xa7,0x02,0x96,\r
0x3b,0x53,0x00,0x00,0xbb,0x3d,0x03,0xe0,0x57,0x78,0xfe,0x1e,0x58,0x36,0x01,0xfa,\r
0x4f,0x94,0xfc,0x0b,0x58,0x36,0x01,0xfa,0xa0,0x6e,0x03,0xf4,0x3f,0x96,0xfe,0x0b,\r
0x00,0x0a,0x00,0x1b,0x05,0xdc,0x00,0x00,0x00,0x0a,0x00,0x16,0x02,0xee,0x00,0x00,\r
-0x00,0x0f,0x00,0xc9,0x06,0x24,0x00,0x01,0x0f,0xac,0x00,0x00,0xf5,0xd0,0xc5,0x4a,\r
-0x32,0xe2,0xd3,0x45,\r
+0x00,0x0f,0x00,0xc9,0x06,0x24,0x00,0x01,0x0f,0xac,0x00,0x00,0xf5,0xd0,0x36,0x33,\r
+0x58,0xd5,0xb8,0x1c,\r
};\r
\r
struct aw_prof_desc g_dev0_prof[] = {\r
return;\r
}\r
\r
- if (curTime.tm_sec % 3 == 0) {\r
+ if (curTime.tm_sec % 3 == 0) \r
+ {\r
do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BLE_ADV_CHECK, nullptr, 0);\r
- do_cywee_service_check_msg(CYWEE_SERVICE_CMD_CHECK_ACC,NULL); //检查gsensor是否停止\r
- }\r
+ }\r
+\r
+ if(curTime.tm_sec % 60 == 0)\r
+ {\r
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_CHECK_ACC,NULL); //一分钟检查一次gsensor是否停止\r
+ }\r
\r
if (g_alarmCtrA.state == ALARM_STATUS_RUNNING)\r
{\r
#include "cat1_ctl.h"\r
#include "cat1_server_hal.h"\r
#include "custom_utils.h"\r
-\r
+#include "custom_runtime.h"\r
namespace OHOS\r
{\r
\r
} \r
display_api->set_auto_timeout_function(false);\r
\r
- uapi_set4GCapability(true);\r
+ if(!uapi_dev_runtime_get_factory_test_status_flag())\r
+ uapi_set4GCapability(true);\r
\r
start_custom_ble_service();\r
}\r
* @Author: penglei 1624952103@qq.com\r
* @Date: 2024-06-17 14:31:08\r
* @LastEditors: penglei 1624952103@qq.com\r
- * @LastEditTime: 2024-10-30 10:48:57\r
+ * @LastEditTime: 2024-10-30 18:37:04\r
* @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
* @Description: \r
* \r
uint32_t fail_num; //总失败次数\r
uint32_t display_error; //LCD失败次数\r
uint32_t tp_error; //tp失败次数\r
+ uint32_t crown_error; //表冠失败次数\r
uint32_t gsensor_error; //gsensor失败次数\r
uint32_t ppg_error; //ppg失败次数\r
uint32_t mag_error; //磁力计失败次数 \r
\r
static osTimerId_t g_ble_acc_timer = NULL;\r
\r
-static uint32_t aging_time = 0;\r
+static int aging_time = 0;\r
\r
static uint8_t pwr_button_result = 0;\r
static uint8_t func_button_result = 1;\r
uint32_t enter_age_time = 0;\r
uint32_t exit_age_time = 0;\r
int cmd = 0;\r
- while(aging_t.flag == 0xfdfd0002 && aging_time)\r
+ while(aging_t.flag == 0xfdfd0002)\r
//while(aging_t.flag == 0xfdfd0002)\r
{\r
\r
uapi_get_timestampe_ss(&enter_age_time);\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
\r
}\r
PRINT("TP 失败次数 : %d \r\n",aging_t.tp_error);\r
\r
+/*********************表冠 老化测试*****************************/\r
+ //读crown ID\r
+ PRINT("crown_read_reg : %X \n",crown_read_reg(0x00));\r
+ if(!(crown_read_reg(0x00) == 0x30))\r
+ {\r
+ aging_t.crown_error++;\r
+ aging_t.fail_num++;\r
+ }\r
+ PRINT("表冠 失败次数 : %d \r\n",aging_t.crown_error);\r
+\r
+\r
/*********************充电 老化测试*****************************/\r
bool state;\r
state = uapi_get_charger_plug_status();\r
- if(!state)\r
+ PRINT("充电 uapi_get_charger_plug_status() : %d \r\n",uapi_get_charger_plug_status());\r
+ if(!uapi_get_charger_plug_status())\r
{\r
aging_t.charge_error++;\r
aging_t.fail_num++;\r
}\r
- PRINT("充电 失败次数 : %d \r\n",aging_t.tp_error);\r
+ PRINT("充电 失败次数 : %d \r\n",aging_t.charge_error);\r
/********************* 马达 老化测试*****************************/\r
//2min 震2s 停2s\r
uint32_t total_time = 2 * 60;\r
uint32_t enter_time = 0;\r
uint32_t age_time = 0;\r
- while(total_time)\r
+ uint32_t current_time = 0;\r
+ uapi_get_timestampe_ss(&enter_time);\r
+ do\r
{\r
- uapi_get_timestampe_ss(&enter_time);\r
+ uapi_get_timestampe_ss(¤t_time);\r
+ // uapi_get_timestampe_ss(&enter_time);\r
custom_VibratorFunc_int(4);\r
LOS_Msleep(4000);\r
- uapi_get_timestampe_ss(&age_time);\r
- total_time -= (age_time - enter_time);\r
- PRINT("total_time[%d]\n",total_time);\r
- }\r
- uapi_vibrator_test();\r
+ // uapi_get_timestampe_ss(&age_time);\r
+ PRINT("current_time - enter_time[%d]\n",current_time - enter_time);\r
+ }while(current_time - enter_time <= 2 * 60);\r
PRINT("马达失败次数 : %d \r\n",aging_t.motor_error);\r
\r
/********************* mic 老化测试*****************************/\r
aging_t.fail_num++;\r
}\r
PRINT("mic失败次数 : %d \r\n",aging_t.mic_error);\r
+ uapi_delete_files("/user/userdata/microphone.mp3");\r
/********************* spk 老化测试*****************************/\r
total_time = 2 * 60;\r
enter_time = 0;\r
age_time = 0;\r
- while(total_time)\r
+ uapi_get_timestampe_ss(&enter_time);\r
+ do\r
{\r
- uapi_get_timestampe_ss(&enter_time);\r
+ uapi_get_timestampe_ss(¤t_time);\r
uapi_check_spk(1);\r
LOS_Msleep(2000);\r
uapi_check_spk(0);\r
aging_t.speaker_error = 0;\r
- uapi_get_timestampe_ss(&age_time);\r
- total_time -= (age_time - enter_time);\r
- PRINT("total_time[%d]\n",total_time);\r
- }\r
+ PRINT("current_time - enter_time[%d]\n",current_time - enter_time);\r
+ }while(current_time - enter_time <= 2 * 60);\r
PRINT("spk失败次数 : %d \r\n",aging_t.speaker_error);\r
/*********************ppg 老化测试*****************************/\r
\r
total_time = 2 * 60;\r
enter_time = 0;\r
age_time = 0;\r
- while(total_time)\r
+ uapi_get_timestampe_ss(&enter_time);\r
+ do\r
{\r
- uapi_get_timestampe_ss(&enter_time);\r
+ uapi_get_timestampe_ss(¤t_time);\r
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST);\r
LOS_Msleep(200);\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
PRINT("ft_result.gr_data_final : %d , ft_result.red_data_final : %d , ft_result.ir_data_final : %d\r\n",ft_result.gr_data_final,ft_result.red_data_final,ft_result.ir_data_final);\r
- uapi_get_timestampe_ss(&age_time);\r
- total_time -= (age_time - enter_time);\r
- PRINT("total_time[%d]\n",total_time);\r
- }\r
+ if(!(ft_result.gr_data_final && ft_result.red_data_final && ft_result.ir_data_final))\r
+ {\r
+ aging_t.ppg_error++;\r
+ aging_t.fail_num++;\r
+ }\r
+ PRINT("current_time - enter_time[%d]\n",current_time - enter_time);\r
+ }while(current_time - enter_time <= 2 * 60);\r
\r
+ PRINT("aging_t.ppg_error : %d \r\n",aging_t.ppg_error);\r
\r
// if(ft_result.gr_data_final > 5000 || ft_result.red_data_final > 5000 || ft_result.ir_data_final > 5000)\r
// {\r
total_time = 2 * 60;\r
enter_time = 0;\r
age_time = 0;\r
- while(total_time)\r
+ uapi_get_timestampe_ss(&enter_time);\r
+ do\r
{\r
- uapi_get_timestampe_ss(&enter_time);\r
+ uapi_get_timestampe_ss(¤t_time);\r
get_gsonsen_xyz(&g);\r
if(g.x == 0 && g.y == 0 && g.z == 0)\r
{\r
aging_t.gsensor_error++;\r
aging_t.fail_num++;\r
}\r
- uapi_get_timestampe_ss(&age_time);\r
- total_time -= (age_time - enter_time);\r
- PRINT("total_time[%d]\n",total_time);\r
LOS_Msleep(1000);\r
- }\r
+ PRINT("current_time - enter_time[%d]\n",current_time - enter_time);\r
+ }while(current_time - enter_time <= 2 * 60);\r
PRINT("gsensor失败次数 : %d \r\n",aging_t.gsensor_error);\r
\r
/*********************磁力计 老化测试*****************************/\r
total_time = 2 * 60;\r
enter_time = 0;\r
age_time = 0;\r
- while(total_time)\r
+ uapi_get_timestampe_ss(&enter_time);\r
+ do\r
{\r
- uapi_get_timestampe_ss(&enter_time);\r
+ uapi_get_timestampe_ss(¤t_time);\r
mmc5603_getdata(&fAzimuth,&fPitch,&fRoll);\r
if(fAzimuth < 0)\r
{\r
aging_t.mag_error++;\r
aging_t.fail_num++;\r
}\r
- uapi_get_timestampe_ss(&age_time);\r
- total_time -= (age_time - enter_time);\r
- PRINT("total_time[%d]\n",total_time);\r
LOS_Msleep(1000);\r
- }\r
+ PRINT("current_time - enter_time[%d]\n",current_time - enter_time);\r
+ }while(current_time - enter_time <= 2 * 60);\r
\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)\r
+ if(aging_time <= 0 || aging_time > 2 * 60 * 60)\r
{\r
aging_t.flag = 0xfdfd0000;\r
return;\r
return ERRCODE_FAIL;\r
}\r
\r
- memset(&aging_t, 0, sizeof(ble_aging_t));\r
+\r
aging_t.flag = 0xfdfd0002;\r
\r
return ERRCODE_SUCC;\r
{\r
//进入老化命令\r
uint8_t send_data = 0x00;\r
+ memset(&aging_t, 0, sizeof(ble_aging_t));\r
aging_t.target_time = 6 * 60 * 60; //老化时间6小时\r
aging_time = aging_t.target_time;\r
aging_test_init();\r
\r
printf("crc16 0x%04X vs 0x%04X\n",crc16,crc16_2);\r
\r
- // if( crc16 == crc16_2) //校验通过,开始正式解析\r
+ if( crc16 == crc16_2) //校验通过,开始正式解析\r
{\r
if(factorytest_mode_flag == 0 && header.submod != BLE_TEST_CMD_COMMON_SUB_MODE_SWITCH_MODE)\r
return ERRCODE_FAIL;\r
data.receive_buf = readData;
data.receive_len = readDataSize;
+ uint32_t irq_sts = osal_irq_lock();
+
for (retry = 0; retry < CUSTOM_I2C_TIME_MAX; retry++) {
ret = uapi_i2c_master_writeread(busIndex, slaveAddr, &data);
if (ret == ERRCODE_SUCC) {
PRINT("i2cRead data read fail! busIndex %d, slaveAddr 0x%x, regaddr 0x%X,reglength %d, ret=0x%x\n",busIndex, slaveAddr,reg,regLength, ret);
}
osal_kfree(write_data);
+ osal_irq_restore(irq_sts);
error:
cnt = pm_veto_get_id_cnt(PM_ID_GSENSOR);
data.receive_buf = NULL;
data.receive_len = 0;
+
+ uint32_t irq_sts = osal_irq_lock();
+
for (retry = 0; retry < CUSTOM_I2C_TIME_MAX; retry++) {
ret = uapi_i2c_master_write(busIndex, slaveAddr, &data);
if (ret == ERRCODE_SUCC) {
if (ret != ERRCODE_SUCC) {
PRINT("i2cWrite cywee data write fail! ret=0x%x\n", ret);
}
+
+ osal_irq_restore(irq_sts);
free_mem:
osal_kfree(write_data);
error: