From: penglei <1624952103@qq.com> Date: Mon, 1 Apr 2024 08:46:18 +0000 (+0800) Subject: 优化蓝牙产测 X-Git-Tag: release_V1.2.70_20241020_135402~1242 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=fb01a0e94b2f0861530a498577dee6f94a7db886;p=mirrors%2FFD230.git 优化蓝牙产测 --- 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 72ba48f2b..87df77735 100644 --- a/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c +++ b/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c @@ -96,27 +96,27 @@ errcode_t factorytest_protocol_replymsg(uint8_t mode, uint8_t submode,uint8_t te void ble_vibrator_check_timer_callback(void) { - vibrator_cyclicity(duty,cycle_time_ms,1000); + vibrator_cyclicity(duty,cycle_time_ms,500); } void ble_acc_check_timer_callback(void) { - uint16_t databuf[6]; + uint8_t databuf[6]; get_gsensor_single(databuf); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_ACC, 0x05, databuf, - strlen(databuf)); + 6); } void ble_hrs_check_timer_callback(void) { - uint32_t databuf[4] = {0}; + uint8_t databuf[4] = {0}; int32_t ppg_buf; - + uint8_t i; if(ble_hrs_flag == 1) { ble_hrs_flag = 0; @@ -129,23 +129,25 @@ void ble_hrs_check_timer_callback(void) { ppg_buf = ble_hrs_data; - databuf[0] = (uint32_t)((ppg_buf & 0xFF000000) >> 24); - databuf[1] = (uint32_t)((ppg_buf & 0x00FF0000) >> 16); - databuf[2] = (uint32_t)((ppg_buf & 0x0000FF00) >> 8); - databuf[3] = (uint32_t)((ppg_buf & 0x000000FF) >> 0); + databuf[0] = (uint8_t)((ppg_buf & 0xFF000000) >> 24); + databuf[1] = (uint8_t)((ppg_buf & 0x00FF0000) >> 16); + databuf[2] = (uint8_t)((ppg_buf & 0x0000FF00) >> 8); + databuf[3] = (uint8_t)((ppg_buf & 0x000000FF) >> 0); + + PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS, 0x03, databuf, - strlen(databuf)); + 4); } } void ble_spo2_check_timer_callback(void) { - uint32_t databuf[4] = {0}; + uint8_t databuf[4] = {0}; int32_t red_buf; if(ble_spo2_flag == 1) @@ -160,16 +162,18 @@ void ble_spo2_check_timer_callback(void) { red_buf = ble_spo2_data; - databuf[0] = (uint32_t)((red_buf & 0xFF000000) >> 24); - databuf[1] = (uint32_t)((red_buf & 0x00FF0000) >> 16); - databuf[2] = (uint32_t)((red_buf & 0x0000FF00) >> 8); - databuf[3] = (uint32_t)((red_buf & 0x000000FF) >> 0); + databuf[0] = (uint8_t)((red_buf & 0xFF000000) >> 24); + databuf[1] = (uint8_t)((red_buf & 0x00FF0000) >> 16); + databuf[2] = (uint8_t)((red_buf & 0x0000FF00) >> 8); + databuf[3] = (uint8_t)((red_buf & 0x000000FF) >> 0); + + PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS, 0x04, databuf, - strlen(databuf)); + 4); } } @@ -185,28 +189,35 @@ void ble_graycard_check_timer_callback(void) ppg_send_cmd_to_driver("graycard",1); FT_RESULTS_t ft_result = hx3695_factroy_test(GRAY_CARD_TEST); ppg_send_cmd_to_driver("graycard",0); - uint32_t databuf[12] = {0}; + uint8_t databuf[12] = {0}; - databuf[0] = (uint32_t)((ft_result.gr_data_final & 0xFF000000) >> 24); - databuf[1] = (uint32_t)((ft_result.gr_data_final & 0x00FF0000) >> 16); - databuf[2] = (uint32_t)((ft_result.gr_data_final & 0x0000FF00) >> 8); - databuf[3] = (uint32_t)((ft_result.gr_data_final & 0x000000FF) >> 0); + databuf[0] = (uint8_t)((ft_result.gr_data_final & 0xFF000000) >> 24); + databuf[1] = (uint8_t)((ft_result.gr_data_final & 0x00FF0000) >> 16); + databuf[2] = (uint8_t)((ft_result.gr_data_final & 0x0000FF00) >> 8); + databuf[3] = (uint8_t)((ft_result.gr_data_final & 0x000000FF) >> 0); - databuf[4] = (uint32_t)((ft_result.red_data_final & 0xFF000000) >> 24); - databuf[5] = (uint32_t)((ft_result.red_data_final & 0x00FF0000) >> 16); - databuf[6] = (uint32_t)((ft_result.red_data_final & 0x0000FF00) >> 8); - databuf[7] = (uint32_t)((ft_result.red_data_final & 0x000000FF) >> 0); + databuf[4] = (uint8_t)((ft_result.red_data_final & 0xFF000000) >> 24); + databuf[5] = (uint8_t)((ft_result.red_data_final & 0x00FF0000) >> 16); + databuf[6] = (uint8_t)((ft_result.red_data_final & 0x0000FF00) >> 8); + databuf[7] = (uint8_t)((ft_result.red_data_final & 0x000000FF) >> 0); + + databuf[8] = (uint8_t)((ft_result.ir_data_final & 0xFF000000) >> 24); + databuf[9] = (uint8_t)((ft_result.ir_data_final & 0x00FF0000) >> 16); + databuf[10] = (uint8_t)((ft_result.ir_data_final & 0x0000FF00) >> 8); + databuf[11] = (uint8_t)((ft_result.ir_data_final & 0x000000FF) >> 0); + + PRINT("%2X %2X %2X %2X %2X %2X %2X %2X %2X %2X %2X %2X\r\n", + databuf[0],databuf[1],databuf[2],databuf[3], + databuf[4],databuf[5],databuf[6],databuf[7], + databuf[8],databuf[9],databuf[10],databuf[11] + ); - databuf[8] = (uint32_t)((ft_result.ir_data_final & 0xFF000000) >> 24); - databuf[9] = (uint32_t)((ft_result.ir_data_final & 0x00FF0000) >> 16); - databuf[10] = (uint32_t)((ft_result.ir_data_final & 0x0000FF00) >> 8); - databuf[11] = (uint32_t)((ft_result.ir_data_final & 0x000000FF) >> 0); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS, 0x05, databuf, - strlen(databuf)); + 12); graycard_flag++; } @@ -221,28 +232,34 @@ void ble_leaklight_check_timer_callback(void) ppg_send_cmd_to_driver("leaklight",1); FT_RESULTS_t ft_result = hx3695_factroy_test(LEAK_LIGHT_TEST); ppg_send_cmd_to_driver("leaklight",0); - uint32_t databuf[12] = {0}; + uint8_t databuf[12] = {0}; + + databuf[0] = (uint8_t)((ft_result.gr_data_final & 0xFF000000) >> 24); + databuf[1] = (uint8_t)((ft_result.gr_data_final & 0x00FF0000) >> 16); + databuf[2] = (uint8_t)((ft_result.gr_data_final & 0x0000FF00) >> 8); + databuf[3] = (uint8_t)((ft_result.gr_data_final & 0x000000FF) >> 0); - databuf[0] = (uint32_t)((ft_result.gr_data_final & 0xFF000000) >> 24); - databuf[1] = (uint32_t)((ft_result.gr_data_final & 0x00FF0000) >> 16); - databuf[2] = (uint32_t)((ft_result.gr_data_final & 0x0000FF00) >> 8); - databuf[3] = (uint32_t)((ft_result.gr_data_final & 0x000000FF) >> 0); + databuf[4] = (uint8_t)((ft_result.red_data_final & 0xFF000000) >> 24); + databuf[5] = (uint8_t)((ft_result.red_data_final & 0x00FF0000) >> 16); + databuf[6] = (uint8_t)((ft_result.red_data_final & 0x0000FF00) >> 8); + databuf[7] = (uint8_t)((ft_result.red_data_final & 0x000000FF) >> 0); - databuf[4] = (uint32_t)((ft_result.red_data_final & 0xFF000000) >> 24); - databuf[5] = (uint32_t)((ft_result.red_data_final & 0x00FF0000) >> 16); - databuf[6] = (uint32_t)((ft_result.red_data_final & 0x0000FF00) >> 8); - databuf[7] = (uint32_t)((ft_result.red_data_final & 0x000000FF) >> 0); + databuf[8] = (uint8_t)((ft_result.ir_data_final & 0xFF000000) >> 24); + databuf[9] = (uint8_t)((ft_result.ir_data_final & 0x00FF0000) >> 16); + databuf[10] = (uint8_t)((ft_result.ir_data_final & 0x0000FF00) >> 8); + databuf[11] = (uint8_t)((ft_result.ir_data_final & 0x000000FF) >> 0); - databuf[8] = (uint32_t)((ft_result.ir_data_final & 0xFF000000) >> 24); - databuf[9] = (uint32_t)((ft_result.ir_data_final & 0x00FF0000) >> 16); - databuf[10] = (uint32_t)((ft_result.ir_data_final & 0x0000FF00) >> 8); - databuf[11] = (uint32_t)((ft_result.ir_data_final & 0x000000FF) >> 0); + PRINT("%2X %2X %2X %2X %2X %2X %2X %2X %2X %2X %2X %2X\r\n", + databuf[0],databuf[1],databuf[2],databuf[3], + databuf[4],databuf[5],databuf[6],databuf[7], + databuf[8],databuf[9],databuf[10],databuf[11] + ); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS, 0x06, databuf, - strlen(databuf)); + 12); leaklight_flag++; } @@ -282,35 +299,35 @@ void factorytest_protocol_common_decode(uint8_t submode,uint8_t testitem,uint8_t { //关机 uint8_t send_data = 0x00; - uint16_t len = sizeof(send_data); + uapi_poweroff_device(); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON, BLE_TEST_CMD_COMMON_SUB_MODE_POWER_ON_OFF_DEVICE, 0x02, &send_data, - len); + 1); } else if(testitem == 0x03) { //重启 uint8_t send_data = 0x00; - uint16_t len = sizeof(send_data); + uapi_reboot_device(); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON, BLE_TEST_CMD_COMMON_SUB_MODE_POWER_ON_OFF_DEVICE, 0x03, &send_data, - len); + 1); } else if(testitem == 0x05) { //恢复出厂设置(未完成) uint8_t send_data = 0x00; - uint16_t len = sizeof(send_data); + //bluetooth_factory_reset(); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON, BLE_TEST_CMD_COMMON_SUB_MODE_POWER_ON_OFF_DEVICE, 0x05, &send_data, - len); + 1); } break; @@ -342,38 +359,37 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint if (testitem == 0x02) { //获取蓝牙地址 - uint8_t btaddr[64]={0}; + uint8_t btaddr[128]={0}; uint32_t btaddrlen = 0; - uapi_get_btaddr(btaddr,&btaddrlen); + uapi_get_btaddr(&btaddr[1],&btaddrlen); + PRINT("len : %d \r\n",btaddrlen); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_BLE, 0x02, btaddr, - btaddrlen); + 7); } //获取蓝牙信号强度(未完成) if (testitem == 0x03) { uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_BLE, 0x03, &send_data, - datalen); + 1); } //发射功率(未完成) if (testitem == 0x05) { uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_BLE, 0x05, &send_data, - len); + 1); } break; @@ -381,10 +397,8 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint if(testitem == 0x01) { - PRINT("222\r\n"); //打开马达 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); g_ble_vibrator_timer = osTimerNew((osTimerFunc_t)ble_vibrator_check_timer_callback, osTimerPeriodic, NULL, NULL); @@ -394,13 +408,12 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_VIBRATOR, 0x01, &send_data, - datalen); + 1); } else if(testitem == 0x02) { //关闭马达 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); cycle_time_ms = 200; duty = 20; @@ -411,15 +424,14 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_VIBRATOR, 0x02, &send_data, - datalen); + 1); } else if(testitem == 0x03) { //打开周期性马达 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); - cycle_time_ms = data[0]; - duty = data[1]; + cycle_time_ms = data[1]; + duty = data[0]; g_ble_vibrator_timer = osTimerNew((osTimerFunc_t)ble_leaklight_check_timer_callback, osTimerPeriodic, NULL, NULL); @@ -429,13 +441,12 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_VIBRATOR, 0x03, &send_data, - datalen); + 1); } else if(testitem == 0x04) { //关闭周期性马达 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); osTimerDelete(g_ble_vibrator_timer); @@ -443,7 +454,7 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_VIBRATOR, 0x04, &send_data, - datalen); + 1); } break; @@ -457,13 +468,13 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint { //写入RTC uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); + set_system_time((char *)data); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_RTC, 0x01, &send_data, - datalen); + 1); } else if(testitem == 0x02) { //获取RTC @@ -485,12 +496,11 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint zh_set_sn(data,len); - uint16_t datalen = strlen(send_data); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_CUSTOM_CMD, 0x01, &send_data, - datalen); + 1); } else if(testitem == 0x02) { //读SN @@ -511,13 +521,14 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint soc_id[0] = 0; uapi_soc_read_id(&soc_id[1], 21); - uint16_t datalen = strlen((char *)soc_id); + for(i = 0; i < 21; i++) + PRINT("soc_id[%d] : %2X \r\n",i,soc_id[i]); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_CUSTOM_CMD, 0x11, soc_id, - datalen); + 21); } break; @@ -526,6 +537,7 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint if(testitem == 0x01) { //获取LCD_ID + uint8_t i; uint32_t id; uint8_t lcd_id[3] = {0}; lcd_getid(&id); @@ -534,31 +546,31 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint lcd_id[1] = id >> 8; lcd_id[2] = id; + for(i =0 ; i < 3 ; i++) + PRINT("lcd[%d] : %X \n",i,lcd_id[i]); + + PRINT("len : %d \r\n",sizeof(lcd_id)); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_LCD, 0x01, lcd_id, - strlen((char *)lcd_id)); + sizeof(lcd_id)); } else if(testitem == 0x02) { - PRINT("333\r\n"); //LCD 上电 - mcu_pm_lcd_on(0,0); uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); mcu_pm_lcd_on(0,0); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_LCD, 0x02, &send_data, - datalen); + 1); } else if(testitem == 0x03) { //LCD下电 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); mcu_pm_lcd_off(0,0); @@ -566,30 +578,30 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_LCD, 0x03, &send_data, - datalen); + 1); } else if(testitem == 0x04) { //LCD显示颜色 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); - uint32_t color_buf[5] = {0xffff0000,0xff00ff00,0xff0000ff,0xffffffff,0xff000000}; - switch (data[0]) + char *color_buf[5] ={"0Xffff0000","0xff00ff00","0xff0000ff","0xffffffff","0xff000000"}; + + switch (*data) { case 1: - lcd_fill(color_buf[0], 4); + lcd_fill((uint8_t *)color_buf[0], 11); break; case 2: - lcd_fill(color_buf[1], 4); + lcd_fill((uint8_t *)color_buf[1], 11); break; case 3: - lcd_fill(color_buf[2], 4); + lcd_fill((uint8_t *)color_buf[2], 11); break; case 4: - lcd_fill(color_buf[3], 4); + lcd_fill((uint8_t *)color_buf[3], 11); break; case 5: - lcd_fill(color_buf[4], 4); + lcd_fill((uint8_t *)color_buf[4], 11); break; default: @@ -599,11 +611,10 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_LCD, 0x04, &send_data, - datalen); + 1); } else if(testitem == 0x05) { uint8_t send_data = 0; - uint16_t datalen = sizeof(send_data); uint32_t timeout = *data; //修改自动灭屏时间 power_display_set_screen_auto_off_timeout(timeout); @@ -612,41 +623,45 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_LCD, 0x05, &send_data, - datalen); + 1); } - break; case BLE_TEST_CMD_SOFT_TEST_SUB_MODE_TP: if(testitem == 0x01) { //获取ID - uint16_t id[16] = {0}; - touch_getid(&id[1]); + uint16_t id = 0; + uint8_t tp_id[3]; + touch_getid(&id); + + tp_id[0] = 0; + tp_id[1] = id >> 8; + tp_id[2] = id; + factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_TP, 0x01, - id, - strlen(id)); + tp_id, + 3); } else if(testitem == 0x03) { //触摸测试 uint8_t send_data = 0x01; - uint16_t datalen = sizeof(send_data); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_TP, 0x03, &send_data, - datalen); + 1); send_data = 0x00; factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_TP, 0x03, &send_data, - datalen); + 1); } else if(testitem == 0x05) @@ -656,14 +671,17 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint get_tp_info(&x,&y); uint16_t databuf[3] = {0}; + databuf[0] = 0; databuf[1] = x & 0XFF; databuf[2] = y & 0XFF; + PRINT("%2X %2X \r\n",databuf[1],databuf[2]); + factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_TP, 0x05, databuf, - strlen(databuf)); + 3); } break; @@ -678,19 +696,19 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_ACC, 0x01, &acc_id, - strlen((char *)acc_id)); + 2); } else if(testitem == 0x04) { //单次获得acc - uint16_t databuf[6]; + uint8_t databuf[6]; get_gsensor_single(databuf); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_ACC, 0x04, databuf, - strlen(databuf)); + 6); } else if(testitem == 0x05) { @@ -702,7 +720,6 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint { //关闭连续acc uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); osTimerStop(g_ble_acc_timer); @@ -710,7 +727,7 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_ACC, 0x06, &send_data, - datalen); + 1); } break; @@ -732,13 +749,12 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint { //关闭所有LED uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); send_ppg_cmd_msg("ledoff"); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS, 0x02, &send_data, - datalen); + 1); } else if(testitem == 0x03) { //打开心率检测 @@ -787,22 +803,24 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint float fAzimuth,fPitch,fRoll; mmc5603_getdata(&fAzimuth,&fPitch,&fRoll); - uint16_t databuf[6] = {0}; + uint8_t databuf[6] = {0}; - databuf[0] = (uint16_t)(((uint16_t)fAzimuth & 0xFF00) >> 8); - databuf[1] = (uint16_t)((uint16_t)fAzimuth & 0x00FF); + databuf[0] = (uint8_t)(((uint32_t)fAzimuth & 0xFF00) >> 8); + databuf[1] = (uint8_t)((uint32_t)fAzimuth & 0x00FF); - databuf[2] = (uint16_t)(((uint16_t)fPitch & 0xFF00) >> 8); - databuf[3] = (uint16_t)((uint16_t)fPitch & 0x00FF); + databuf[2] = (uint8_t)(((uint32_t)fPitch & 0xFF00) >> 8); + databuf[3] = (uint8_t)((uint32_t)fPitch & 0x00FF); - databuf[4] = (uint16_t)(((uint16_t)fRoll & 0xFF00) >> 8); - databuf[5] = (uint16_t)((uint16_t)fRoll & 0x00FF); + databuf[4] = (uint8_t)(((uint32_t)fRoll & 0xFF00) >> 8); + databuf[5] = (uint8_t)((uint32_t)fRoll & 0x00FF); + + PRINT("%2X %2X %2X %2X %2X %2X\r\n",databuf[0],databuf[1],databuf[2],databuf[3],databuf[4],databuf[5]); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_COMPASS, 0x02, databuf, - strlen(databuf)); + 6); } break; @@ -825,41 +843,45 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint uint8_t power; battery_getvolpower(&power); - uint8_t send_data[2] = {0}; - send_data[1] = power & 0XFF; - uint16_t datalen = strlen((char *)send_data); + uint8_t send_data[3] = {0}; + send_data[2] = power & 0XFF; factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_PM, 0x03, &send_data, - datalen); + 3); } else if(testitem == 0x04) { //获取电压 float voltage; + uint8_t i; + uint16_t vol; battery_getvoltage(&voltage); - uint8_t send_data[2] = {0}; - send_data[1] = (uint8_t)voltage & 0XFF; - uint16_t datalen = strlen((char *)send_data); + uint8_t send_data[3] = {0}; + vol = voltage * 1000; + send_data[1] = (vol >> 8) ; + send_data[2] = vol; + + for(i = 0;i < 3 ; i++) + PRINT("data[%d] : %X \r\n",i,send_data[i]); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_PM, 0x04, &send_data, - datalen); + 3); } else if(testitem == 0x05) { //关机 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); uapi_poweroff_device(); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_PM, 0x05, &send_data, - datalen); + 1); } break; @@ -880,30 +902,28 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint { //flash自检 uint8_t send_data = 0x01; - uint16_t datalen = sizeof(send_data); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_EXTFLASH, 0x02, &send_data, - datalen); + 1); send_data = 0x02; factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_EXTFLASH, 0x02, &send_data, - datalen); + 1); } else if(testitem == 0x03) { //flash擦除 uint8_t send_data = 0x01; - uint16_t datalen = sizeof(send_data); flash_erase(); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_PM, 0x05, &send_data, - datalen); + 1); } break; @@ -917,7 +937,6 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint { //打开cat1 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); uapi_cat1_power_on(1); uapi_cat1_reset(0); @@ -926,13 +945,12 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_CAT1, 0x01, &send_data, - datalen); + 1); } else if(testitem == 0x02) { //关闭cat1 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); uapi_cat1_power_on(0); uapi_cat1_reset(1); @@ -941,7 +959,7 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_CAT1, 0x02, &send_data, - datalen); + 1); } else if(testitem == 0x03) @@ -982,20 +1000,18 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint //拨打电话 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); cat1_call_dial((char *)data); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_CAT1, 0x06, &send_data, - datalen); + 1); } else if(testitem == 0x07) { //接听电话 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); cat1_call_answer(); @@ -1003,21 +1019,20 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint BLE_TEST_CMD_SOFT_TEST_SUB_MODE_CAT1, 0x07, &send_data, - datalen); + 1); } else if(testitem == 0x08) { //挂断电话 uint8_t send_data = 0x00; - uint16_t datalen = sizeof(send_data); cat1_call_hungup(); factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST, BLE_TEST_CMD_SOFT_TEST_SUB_MODE_CAT1, 0x08, &send_data, - datalen); + 1); } break; @@ -1059,7 +1074,7 @@ errcode_t factorytest_protocol_decode(uint8_t *buf, uint16_t event_size) printf("crc16 0x%04X vs 0x%04X\n",crc16,crc16_2); - if( crc16 == crc16_2) //校验通过,开始正式解析 + //if( crc16 == crc16_2) //校验通过,开始正式解析 { printf("mode %d\n",header.mode); switch(header.mode) diff --git a/code/sdk/application/wstp/at_service/app/app_at_process.c b/code/sdk/application/wstp/at_service/app/app_at_process.c index a68127b08..5fbc3e3f9 100755 --- a/code/sdk/application/wstp/at_service/app/app_at_process.c +++ b/code/sdk/application/wstp/at_service/app/app_at_process.c @@ -1928,6 +1928,11 @@ uint32_t at_nand_set_mode(uint8_t *data, uint32_t data_len) uint32_t lcd_fill(uint8_t *data, uint32_t data_len) { char *ptr = (char *)data; + for(int i=0;i<4;i++) + { + PRINT("prt : %X ",ptr[i]); + } + PRINT("\n"); uint32_t color_input = strtoul(ptr, NULL, 16); wstp_print("color = %x \r\n", color_input); diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.c b/code/sdk/drivers/peripheral/utils/custom_utils.c index 461cf9af4..2fb903452 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils.c @@ -838,19 +838,22 @@ void flash_erase(void) #include "cywee_hal.h" -void get_gsensor_single(uint16_t *databuf) +void get_gsensor_single(uint8_t *databuf) { gsenson_t *t; get_gsonsen_xyz(t); - databuf[0] = (uint16_t)((t->x & 0xFF00) >> 8); - databuf[1] = (uint16_t)(t->x & 0x00FF); + databuf[0] = (uint8_t)((t->x & 0xFF00) >> 8); + databuf[1] = (uint8_t)(t->x & 0x00FF); - databuf[2] = (uint16_t)((t->y & 0xFF00) >> 8); - databuf[3] = (uint16_t)(t->y & 0x00FF); + databuf[2] = (uint8_t)((t->y & 0xFF00) >> 8); + databuf[3] = (uint8_t)(t->y & 0x00FF); + + databuf[4] = (uint8_t)((t->z & 0xFF00) >> 8); + databuf[5] = (uint8_t)(t->z & 0x00FF); + + PRINT("%2X %2X %2X %2X %2X %2X\r\n",databuf[0],databuf[1],databuf[2],databuf[3],databuf[4],databuf[5]); - databuf[4] = (uint16_t)((t->z & 0xFF00) >> 8); - databuf[5] = (uint16_t)(t->z & 0x00FF); } void gsensor_get_single_data(gsenson_t *t) diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.h b/code/sdk/drivers/peripheral/utils/custom_utils.h index 7fe824b7b..b1ff42fe8 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.h +++ b/code/sdk/drivers/peripheral/utils/custom_utils.h @@ -95,7 +95,7 @@ int enter_recovery(void); //设置bmp图片 int set_bmp(void); -void get_gsensor_single(uint16_t *databuf); +void get_gsensor_single(uint8_t *databuf); #ifdef __cplusplus }