优化蓝牙产测
authorpenglei <1624952103@qq.com>
Mon, 1 Apr 2024 08:46:18 +0000 (16:46 +0800)
committerpenglei <1624952103@qq.com>
Mon, 1 Apr 2024 08:46:18 +0000 (16:46 +0800)
code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c
code/sdk/application/wstp/at_service/app/app_at_process.c
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h

index 72ba48f..87df777 100644 (file)
@@ -96,27 +96,27 @@ errcode_t factorytest_protocol_replymsg(uint8_t mode, uint8_t submode,uint8_t te
 \r
 void ble_vibrator_check_timer_callback(void)\r
 {\r
-    vibrator_cyclicity(duty,cycle_time_ms,1000);\r
+    vibrator_cyclicity(duty,cycle_time_ms,500);\r
 }\r
 \r
 void ble_acc_check_timer_callback(void)\r
 {\r
-    uint16_t databuf[6];\r
+    uint8_t databuf[6];\r
     get_gsensor_single(databuf);\r
 \r
     factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
             BLE_TEST_CMD_SOFT_TEST_SUB_MODE_ACC,\r
             0x05,\r
             databuf,\r
-            strlen(databuf));\r
+            6);\r
 }\r
 \r
 \r
 void ble_hrs_check_timer_callback(void)\r
 {\r
-    uint32_t databuf[4] = {0};\r
+    uint8_t databuf[4] = {0};\r
     int32_t ppg_buf;\r
-\r
+    uint8_t i;\r
     if(ble_hrs_flag == 1)\r
     {\r
         ble_hrs_flag = 0;\r
@@ -129,23 +129,25 @@ void ble_hrs_check_timer_callback(void)
     {\r
         ppg_buf = ble_hrs_data;\r
 \r
-        databuf[0] = (uint32_t)((ppg_buf & 0xFF000000) >> 24);\r
-        databuf[1] = (uint32_t)((ppg_buf & 0x00FF0000) >> 16);\r
-        databuf[2] = (uint32_t)((ppg_buf & 0x0000FF00) >> 8);\r
-        databuf[3] = (uint32_t)((ppg_buf & 0x000000FF) >> 0);\r
+        databuf[0] = (uint8_t)((ppg_buf & 0xFF000000) >> 24);\r
+        databuf[1] = (uint8_t)((ppg_buf & 0x00FF0000) >> 16);\r
+        databuf[2] = (uint8_t)((ppg_buf & 0x0000FF00) >> 8);\r
+        databuf[3] = (uint8_t)((ppg_buf & 0x000000FF) >> 0);\r
+\r
+        PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
 \r
         factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
                         0x03,\r
                         databuf,\r
-                        strlen(databuf));\r
+                        4);\r
     }\r
 \r
 }\r
 \r
 void ble_spo2_check_timer_callback(void)\r
 {\r
-    uint32_t databuf[4] = {0};\r
+    uint8_t databuf[4] = {0};\r
     int32_t red_buf;\r
 \r
     if(ble_spo2_flag == 1)\r
@@ -160,16 +162,18 @@ void ble_spo2_check_timer_callback(void)
     {\r
         red_buf = ble_spo2_data;\r
 \r
-        databuf[0] = (uint32_t)((red_buf & 0xFF000000) >> 24);\r
-        databuf[1] = (uint32_t)((red_buf & 0x00FF0000) >> 16);\r
-        databuf[2] = (uint32_t)((red_buf & 0x0000FF00) >> 8);\r
-        databuf[3] = (uint32_t)((red_buf & 0x000000FF) >> 0);\r
+        databuf[0] = (uint8_t)((red_buf & 0xFF000000) >> 24);\r
+        databuf[1] = (uint8_t)((red_buf & 0x00FF0000) >> 16);\r
+        databuf[2] = (uint8_t)((red_buf & 0x0000FF00) >> 8);\r
+        databuf[3] = (uint8_t)((red_buf & 0x000000FF) >> 0);\r
+\r
+        PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
 \r
         factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
                         0x04,\r
                         databuf,\r
-                        strlen(databuf));\r
+                        4);\r
     }\r
 \r
 }\r
@@ -185,28 +189,35 @@ void ble_graycard_check_timer_callback(void)
     ppg_send_cmd_to_driver("graycard",1);\r
     FT_RESULTS_t ft_result = hx3695_factroy_test(GRAY_CARD_TEST);\r
     ppg_send_cmd_to_driver("graycard",0);\r
-    uint32_t databuf[12] = {0};\r
+    uint8_t databuf[12] = {0};\r
 \r
-    databuf[0] = (uint32_t)((ft_result.gr_data_final & 0xFF000000) >> 24);\r
-    databuf[1] = (uint32_t)((ft_result.gr_data_final & 0x00FF0000) >> 16);\r
-    databuf[2] = (uint32_t)((ft_result.gr_data_final & 0x0000FF00) >> 8);\r
-    databuf[3] = (uint32_t)((ft_result.gr_data_final & 0x000000FF) >> 0);\r
+    databuf[0] = (uint8_t)((ft_result.gr_data_final & 0xFF000000) >> 24);\r
+    databuf[1] = (uint8_t)((ft_result.gr_data_final & 0x00FF0000) >> 16);\r
+    databuf[2] = (uint8_t)((ft_result.gr_data_final & 0x0000FF00) >> 8);\r
+    databuf[3] = (uint8_t)((ft_result.gr_data_final & 0x000000FF) >> 0);\r
 \r
-    databuf[4] = (uint32_t)((ft_result.red_data_final & 0xFF000000) >> 24);\r
-    databuf[5] = (uint32_t)((ft_result.red_data_final & 0x00FF0000) >> 16);\r
-    databuf[6] = (uint32_t)((ft_result.red_data_final & 0x0000FF00) >> 8);\r
-    databuf[7] = (uint32_t)((ft_result.red_data_final & 0x000000FF) >> 0);\r
+    databuf[4] = (uint8_t)((ft_result.red_data_final & 0xFF000000) >> 24);\r
+    databuf[5] = (uint8_t)((ft_result.red_data_final & 0x00FF0000) >> 16);\r
+    databuf[6] = (uint8_t)((ft_result.red_data_final & 0x0000FF00) >> 8);\r
+    databuf[7] = (uint8_t)((ft_result.red_data_final & 0x000000FF) >> 0);\r
+\r
+    databuf[8] = (uint8_t)((ft_result.ir_data_final & 0xFF000000) >> 24);\r
+    databuf[9] = (uint8_t)((ft_result.ir_data_final & 0x00FF0000) >> 16);\r
+    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
 \r
-    databuf[8] = (uint32_t)((ft_result.ir_data_final & 0xFF000000) >> 24);\r
-    databuf[9] = (uint32_t)((ft_result.ir_data_final & 0x00FF0000) >> 16);\r
-    databuf[10] = (uint32_t)((ft_result.ir_data_final & 0x0000FF00) >> 8);\r
-    databuf[11] = (uint32_t)((ft_result.ir_data_final & 0x000000FF) >> 0);\r
 \r
     factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
                         0x05,\r
                         databuf,\r
-                        strlen(databuf));\r
+                        12);\r
     graycard_flag++;\r
 }\r
 \r
@@ -221,28 +232,34 @@ void ble_leaklight_check_timer_callback(void)
     ppg_send_cmd_to_driver("leaklight",1);\r
     FT_RESULTS_t ft_result = hx3695_factroy_test(LEAK_LIGHT_TEST);\r
     ppg_send_cmd_to_driver("leaklight",0);\r
-    uint32_t databuf[12] = {0};\r
+    uint8_t databuf[12] = {0};\r
+\r
+    databuf[0] = (uint8_t)((ft_result.gr_data_final & 0xFF000000) >> 24);\r
+    databuf[1] = (uint8_t)((ft_result.gr_data_final & 0x00FF0000) >> 16);\r
+    databuf[2] = (uint8_t)((ft_result.gr_data_final & 0x0000FF00) >> 8);\r
+    databuf[3] = (uint8_t)((ft_result.gr_data_final & 0x000000FF) >> 0);\r
 \r
-    databuf[0] = (uint32_t)((ft_result.gr_data_final & 0xFF000000) >> 24);\r
-    databuf[1] = (uint32_t)((ft_result.gr_data_final & 0x00FF0000) >> 16);\r
-    databuf[2] = (uint32_t)((ft_result.gr_data_final & 0x0000FF00) >> 8);\r
-    databuf[3] = (uint32_t)((ft_result.gr_data_final & 0x000000FF) >> 0);\r
+    databuf[4] = (uint8_t)((ft_result.red_data_final & 0xFF000000) >> 24);\r
+    databuf[5] = (uint8_t)((ft_result.red_data_final & 0x00FF0000) >> 16);\r
+    databuf[6] = (uint8_t)((ft_result.red_data_final & 0x0000FF00) >> 8);\r
+    databuf[7] = (uint8_t)((ft_result.red_data_final & 0x000000FF) >> 0);\r
 \r
-    databuf[4] = (uint32_t)((ft_result.red_data_final & 0xFF000000) >> 24);\r
-    databuf[5] = (uint32_t)((ft_result.red_data_final & 0x00FF0000) >> 16);\r
-    databuf[6] = (uint32_t)((ft_result.red_data_final & 0x0000FF00) >> 8);\r
-    databuf[7] = (uint32_t)((ft_result.red_data_final & 0x000000FF) >> 0);\r
+    databuf[8] = (uint8_t)((ft_result.ir_data_final & 0xFF000000) >> 24);\r
+    databuf[9] = (uint8_t)((ft_result.ir_data_final & 0x00FF0000) >> 16);\r
+    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
-    databuf[8] = (uint32_t)((ft_result.ir_data_final & 0xFF000000) >> 24);\r
-    databuf[9] = (uint32_t)((ft_result.ir_data_final & 0x00FF0000) >> 16);\r
-    databuf[10] = (uint32_t)((ft_result.ir_data_final & 0x0000FF00) >> 8);\r
-    databuf[11] = (uint32_t)((ft_result.ir_data_final & 0x000000FF) >> 0);\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
                         0x06,\r
                         databuf,\r
-                        strlen(databuf));\r
+                        12);\r
     leaklight_flag++;\r
 }\r
 \r
@@ -282,35 +299,35 @@ void factorytest_protocol_common_decode(uint8_t submode,uint8_t testitem,uint8_t
             {\r
                 //关机\r
                 uint8_t send_data = 0x00;\r
-                uint16_t len = sizeof(send_data);\r
+\r
                 uapi_poweroff_device();\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON,\r
                         BLE_TEST_CMD_COMMON_SUB_MODE_POWER_ON_OFF_DEVICE,\r
                         0x02,\r
                         &send_data,\r
-                        len);\r
+                        1);\r
             } else if(testitem == 0x03) \r
             {\r
                 //重启\r
                 uint8_t send_data = 0x00;\r
-                uint16_t len = sizeof(send_data);\r
+  \r
                 uapi_reboot_device();\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON,\r
                         BLE_TEST_CMD_COMMON_SUB_MODE_POWER_ON_OFF_DEVICE,\r
                         0x03,\r
                         &send_data,\r
-                        len);\r
+                        1);\r
             } else if(testitem == 0x05)\r
             {\r
                 //恢复出厂设置(未完成)\r
                 uint8_t send_data = 0x00;\r
-                uint16_t len = sizeof(send_data);\r
+\r
                 //bluetooth_factory_reset();\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON,\r
                         BLE_TEST_CMD_COMMON_SUB_MODE_POWER_ON_OFF_DEVICE,\r
                         0x05,\r
                         &send_data,\r
-                        len);\r
+                        1);\r
             }\r
             break;\r
 \r
@@ -342,38 +359,37 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             if (testitem == 0x02)\r
             {\r
                 //获取蓝牙地址\r
-                uint8_t btaddr[64]={0};\r
+                uint8_t btaddr[128]={0};\r
                 uint32_t btaddrlen = 0;\r
-                uapi_get_btaddr(btaddr,&btaddrlen);\r
+                uapi_get_btaddr(&btaddr[1],&btaddrlen);\r
+                PRINT("len : %d \r\n",btaddrlen);\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_BLE,\r
                         0x02,\r
                         btaddr,\r
-                        btaddrlen);\r
+                        7);\r
             }\r
             //获取蓝牙信号强度(未完成)\r
             if (testitem == 0x03)\r
             {\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_BLE,\r
                         0x03,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             }\r
             //发射功率(未完成)\r
             if (testitem == 0x05)\r
             {\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_BLE,\r
                         0x05,\r
                         &send_data,\r
-                        len);\r
+                        1);\r
             }\r
             break;\r
 \r
@@ -381,10 +397,8 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
 \r
             if(testitem == 0x01)\r
             {\r
-                PRINT("222\r\n");\r
                 //打开马达\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 g_ble_vibrator_timer = osTimerNew((osTimerFunc_t)ble_vibrator_check_timer_callback, osTimerPeriodic, NULL, NULL);\r
 \r
@@ -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,\r
                         0x01,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
 \r
             } else if(testitem == 0x02)\r
             {\r
                 //关闭马达\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 cycle_time_ms = 200;\r
                 duty = 20;\r
@@ -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,\r
                         0x02,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             } else if(testitem == 0x03) \r
             {\r
                 //打开周期性马达\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
-                cycle_time_ms = data[0];\r
-                duty = data[1];\r
+                cycle_time_ms = data[1];\r
+                duty = data[0];\r
 \r
                 g_ble_vibrator_timer = osTimerNew((osTimerFunc_t)ble_leaklight_check_timer_callback, osTimerPeriodic, NULL, NULL);\r
 \r
@@ -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,\r
                         0x03,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
 \r
             } else if(testitem == 0x04)\r
             {\r
                 //关闭周期性马达\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 osTimerDelete(g_ble_vibrator_timer);\r
 \r
@@ -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,\r
                         0x04,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             }\r
             break;\r
 \r
@@ -457,13 +468,13 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             {\r
                 //写入RTC\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
+\r
                 set_system_time((char *)data);\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_RTC,\r
                         0x01,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             } else if(testitem == 0x02)\r
             {\r
                 //获取RTC\r
@@ -485,12 +496,11 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
 \r
                 zh_set_sn(data,len);\r
 \r
-                uint16_t datalen = strlen(send_data);\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_CUSTOM_CMD,\r
                         0x01,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             } else if(testitem == 0x02)\r
             {\r
                 //读SN\r
@@ -511,13 +521,14 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                 soc_id[0] = 0;\r
                 uapi_soc_read_id(&soc_id[1], 21);\r
 \r
-                uint16_t datalen = strlen((char *)soc_id);\r
+                for(i = 0; i < 21; i++)\r
+                    PRINT("soc_id[%d] : %2X \r\n",i,soc_id[i]);\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_CUSTOM_CMD,\r
                         0x11,\r
                         soc_id,\r
-                        datalen);\r
+                        21);\r
             }\r
 \r
             break;\r
@@ -526,6 +537,7 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             if(testitem == 0x01)\r
             {\r
                 //获取LCD_ID\r
+                uint8_t i;\r
                 uint32_t id;\r
                 uint8_t lcd_id[3] = {0};\r
                 lcd_getid(&id);\r
@@ -534,31 +546,31 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                 lcd_id[1] = id >> 8;\r
                 lcd_id[2] = id;\r
 \r
+                for(i =0 ; i < 3 ; i++)\r
+                    PRINT("lcd[%d] : %X \n",i,lcd_id[i]);\r
+\r
+                PRINT("len : %d \r\n",sizeof(lcd_id));\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_LCD,\r
                         0x01,\r
                         lcd_id,\r
-                        strlen((char *)lcd_id));\r
+                        sizeof(lcd_id));\r
             } else if(testitem == 0x02)\r
             {\r
-                PRINT("333\r\n");\r
                 //LCD 上电\r
-\r
                 mcu_pm_lcd_on(0,0);\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 mcu_pm_lcd_on(0,0);\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_LCD,\r
                         0x02,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             } else if(testitem == 0x03) \r
             {\r
                 //LCD下电\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 mcu_pm_lcd_off(0,0);\r
 \r
@@ -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,\r
                         0x03,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
 \r
             } else if(testitem == 0x04)\r
             {\r
                 //LCD显示颜色\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
-                uint32_t color_buf[5] = {0xffff0000,0xff00ff00,0xff0000ff,0xffffffff,0xff000000};\r
-                switch (data[0])\r
+                char *color_buf[5] ={"0Xffff0000","0xff00ff00","0xff0000ff","0xffffffff","0xff000000"};\r
+\r
+                switch (*data)\r
                 {\r
                     case 1:\r
-                        lcd_fill(color_buf[0], 4);\r
+                        lcd_fill((uint8_t *)color_buf[0], 11);\r
                         break;\r
                     case 2:\r
-                        lcd_fill(color_buf[1], 4);\r
+                        lcd_fill((uint8_t *)color_buf[1], 11);\r
                         break;\r
                     case 3:\r
-                        lcd_fill(color_buf[2], 4);\r
+                        lcd_fill((uint8_t *)color_buf[2], 11);\r
                         break;\r
                     case 4:\r
-                        lcd_fill(color_buf[3], 4);\r
+                        lcd_fill((uint8_t *)color_buf[3], 11);\r
                         break;\r
                     case 5:\r
-                        lcd_fill(color_buf[4], 4);\r
+                        lcd_fill((uint8_t *)color_buf[4], 11);\r
                         break;\r
 \r
                     default:\r
@@ -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,\r
                         0x04,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             } else if(testitem == 0x05)\r
             {\r
                 uint8_t send_data = 0;\r
-                uint16_t datalen = sizeof(send_data);\r
                 uint32_t timeout = *data;\r
                 //修改自动灭屏时间\r
                 power_display_set_screen_auto_off_timeout(timeout);\r
@@ -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,\r
                         0x05,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             }\r
 \r
-\r
             break;\r
 \r
         case BLE_TEST_CMD_SOFT_TEST_SUB_MODE_TP:\r
             if(testitem == 0x01)\r
             {\r
                 //获取ID\r
-                uint16_t id[16] = {0};\r
-                touch_getid(&id[1]);\r
+                uint16_t id = 0;\r
+                uint8_t tp_id[3];\r
+                touch_getid(&id);\r
+\r
+                tp_id[0] = 0;\r
+                tp_id[1] = id >> 8;\r
+                tp_id[2] = id;\r
+\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_TP,\r
                         0x01,\r
-                        id,\r
-                        strlen(id));\r
+                        tp_id,\r
+                        3);\r
             } else if(testitem == 0x03)\r
             {\r
                 //触摸测试\r
                 uint8_t send_data = 0x01;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_TP,\r
                         0x03,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
 \r
                 send_data = 0x00;\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_TP,\r
                         0x03,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
 \r
                 \r
             } else if(testitem == 0x05)\r
@@ -656,14 +671,17 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                 get_tp_info(&x,&y);\r
                 uint16_t databuf[3] = {0};\r
 \r
+                databuf[0] = 0;\r
                 databuf[1] = x & 0XFF;\r
                 databuf[2] = y & 0XFF;\r
 \r
+                PRINT("%2X %2X \r\n",databuf[1],databuf[2]);\r
+\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_TP,\r
                         0x05,\r
                         databuf,\r
-                        strlen(databuf));\r
+                        3);\r
             }\r
 \r
             break;\r
@@ -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,\r
                         0x01,\r
                         &acc_id,\r
-                        strlen((char *)acc_id));\r
+                        2);\r
 \r
             } else if(testitem == 0x04)\r
             {\r
                 //单次获得acc\r
-                uint16_t databuf[6];\r
+                uint8_t databuf[6];\r
                 get_gsensor_single(databuf);\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_ACC,\r
                         0x04,\r
                         databuf,\r
-                        strlen(databuf));\r
+                        6);\r
 \r
             } else if(testitem == 0x05)\r
             {\r
@@ -702,7 +720,6 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             {\r
                 //关闭连续acc\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 osTimerStop(g_ble_acc_timer);\r
 \r
@@ -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,\r
                             0x06,\r
                             &send_data,\r
-                            datalen);\r
+                            1);\r
             }\r
 \r
             break;\r
@@ -732,13 +749,12 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             {\r
                 //关闭所有LED\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
                 send_ppg_cmd_msg("ledoff");\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
                         0x02,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             } else if(testitem == 0x03)\r
             {\r
                 //打开心率检测\r
@@ -787,22 +803,24 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                 float fAzimuth,fPitch,fRoll;\r
                 mmc5603_getdata(&fAzimuth,&fPitch,&fRoll);\r
                 \r
-                uint16_t databuf[6] = {0};\r
+                uint8_t databuf[6] = {0};\r
 \r
-                databuf[0] = (uint16_t)(((uint16_t)fAzimuth & 0xFF00) >> 8);\r
-                databuf[1] = (uint16_t)((uint16_t)fAzimuth & 0x00FF);\r
+                databuf[0] = (uint8_t)(((uint32_t)fAzimuth & 0xFF00) >> 8);\r
+                databuf[1] = (uint8_t)((uint32_t)fAzimuth & 0x00FF);\r
 \r
-                databuf[2] = (uint16_t)(((uint16_t)fPitch & 0xFF00) >> 8);\r
-                databuf[3] = (uint16_t)((uint16_t)fPitch & 0x00FF);\r
+                databuf[2] = (uint8_t)(((uint32_t)fPitch & 0xFF00) >> 8);\r
+                databuf[3] = (uint8_t)((uint32_t)fPitch & 0x00FF);\r
 \r
-                databuf[4] = (uint16_t)(((uint16_t)fRoll & 0xFF00) >> 8);\r
-                databuf[5] = (uint16_t)((uint16_t)fRoll & 0x00FF);\r
+                databuf[4] = (uint8_t)(((uint32_t)fRoll & 0xFF00) >> 8);\r
+                databuf[5] = (uint8_t)((uint32_t)fRoll & 0x00FF);\r
+\r
+                PRINT("%2X %2X %2X %2X %2X %2X\r\n",databuf[0],databuf[1],databuf[2],databuf[3],databuf[4],databuf[5]);\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_COMPASS,\r
                         0x02,\r
                         databuf,\r
-                        strlen(databuf));\r
+                        6);\r
             }\r
 \r
             break;\r
@@ -825,41 +843,45 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                 uint8_t power;\r
                 battery_getvolpower(&power);\r
 \r
-                uint8_t send_data[2] = {0};\r
-                send_data[1] = power & 0XFF;\r
-                uint16_t datalen = strlen((char *)send_data);\r
+                uint8_t send_data[3] = {0};\r
+                send_data[2] = power & 0XFF;\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_PM,\r
                         0x03,\r
                         &send_data,\r
-                        datalen);\r
+                        3);\r
             } else if(testitem == 0x04)\r
             {\r
                 //获取电压\r
                 float voltage;\r
+                uint8_t i;\r
+                uint16_t vol;\r
                 battery_getvoltage(&voltage);\r
 \r
-                uint8_t send_data[2] = {0};\r
-                send_data[1] = (uint8_t)voltage & 0XFF;\r
-                uint16_t datalen = strlen((char *)send_data);\r
+                uint8_t send_data[3] = {0};\r
+                vol = voltage * 1000;\r
+                send_data[1] = (vol >> 8) ;\r
+                send_data[2] = vol;\r
+\r
+                for(i = 0;i < 3 ; i++)\r
+                    PRINT("data[%d] : %X \r\n",i,send_data[i]);\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_PM,\r
                         0x04,\r
                         &send_data,\r
-                        datalen);\r
+                        3);\r
             } else if(testitem == 0x05)\r
             {\r
                 //关机\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
                 uapi_poweroff_device();\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_PM,\r
                         0x05,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             }\r
 \r
             break;\r
@@ -880,30 +902,28 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             {\r
                 //flash自检\r
                 uint8_t send_data = 0x01;\r
-                uint16_t datalen = sizeof(send_data);\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_EXTFLASH,\r
                         0x02,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
 \r
                 send_data = 0x02;\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_EXTFLASH,\r
                         0x02,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             } else if(testitem == 0x03)\r
             {\r
                 //flash擦除\r
                 uint8_t send_data = 0x01;\r
-                uint16_t datalen = sizeof(send_data);\r
                 flash_erase();\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_PM,\r
                         0x05,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             }\r
 \r
             break;\r
@@ -917,7 +937,6 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             {\r
                 //打开cat1\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 uapi_cat1_power_on(1);\r
                 uapi_cat1_reset(0);\r
@@ -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,\r
                         0x01,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
 \r
             } else if(testitem == 0x02)\r
             {\r
                 //关闭cat1\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 uapi_cat1_power_on(0);\r
                 uapi_cat1_reset(1);\r
@@ -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,\r
                         0x02,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
 \r
 \r
             } else if(testitem == 0x03)\r
@@ -982,20 +1000,18 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
                 //拨打电话\r
                 \r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 cat1_call_dial((char *)data);\r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_CAT1,\r
                         0x06,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
 \r
             } else if(testitem == 0x07)\r
             {\r
                 //接听电话\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
 \r
                 cat1_call_answer();\r
 \r
@@ -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,\r
                         0x07,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             }\r
 \r
             else if(testitem == 0x08)\r
             {\r
                 //挂断电话\r
                 uint8_t send_data = 0x00;\r
-                uint16_t datalen = sizeof(send_data);\r
                 cat1_call_hungup();\r
 \r
                 factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
                         BLE_TEST_CMD_SOFT_TEST_SUB_MODE_CAT1,\r
                         0x08,\r
                         &send_data,\r
-                        datalen);\r
+                        1);\r
             }\r
             \r
             break;\r
@@ -1059,7 +1074,7 @@ errcode_t factorytest_protocol_decode(uint8_t *buf, uint16_t event_size)
                 \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
                 printf("mode %d\n",header.mode);\r
                 switch(header.mode)\r
index a68127b..5fbc3e3 100755 (executable)
@@ -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)\r
 {\r
     char *ptr = (char *)data;\r
+    for(int i=0;i<4;i++)\r
+    {\r
+        PRINT("prt : %X ",ptr[i]);\r
+    }\r
+    PRINT("\n");\r
     uint32_t color_input = strtoul(ptr, NULL, 16);\r
     wstp_print("color = %x \r\n", color_input);\r
 \r
index 461cf9a..2fb9034 100644 (file)
@@ -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)
index 7fe824b..b1ff42f 100644 (file)
@@ -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
 }