优化蓝牙产测,解决表盘指南针校准不过的问题 262/1
authorpenglei <1624952103@qq.com>
Wed, 12 Jun 2024 02:02:05 +0000 (10:02 +0800)
committerpenglei <1624952103@qq.com>
Wed, 12 Jun 2024 02:02:05 +0000 (10:02 +0800)
code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassControlView.cpp
code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c
code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c
code/sdk/drivers/peripheral/mag/service/mag_service.c

index 71dcefc..3121836 100644 (file)
@@ -71,9 +71,9 @@ bool CompassControlView::InitView(void)
 
 void CompassControlView::SetCalibrationView(bool flag)
 {
-    if (flag == isCalibration) {
-        return;
-    }
+    // if (flag == isCalibration) {
+    //     return;
+    // }
 
     if (flag) {
         compassCalibrationView->SetVisible(true);
index af5956d..203ad16 100644 (file)
@@ -68,11 +68,6 @@ static osTimerId_t g_ble_acc_timer;
 \r
 static osTimerId_t g_ble_hrs_timer;\r
 static osTimerId_t g_ble_spo2_timer;\r
-static osTimerId_t g_ble_graycard_timer;\r
-static osTimerId_t g_ble_leaklight_timer;\r
-\r
-static uint8_t graycard_flag = 0;\r
-static uint8_t leaklight_flag = 0;\r
 \r
 static uint32_t aging_time = 0;\r
 \r
@@ -210,93 +205,6 @@ void ble_spo2_check_timer_callback(void)
 \r
 }\r
 \r
-void ble_graycard_check_timer_callback(void)\r
-{\r
-    if(graycard_flag == 10)\r
-    {\r
-        graycard_flag = 0;\r
-        osTimerStop(g_ble_graycard_timer);\r
-        osTimerDelete(g_ble_graycard_timer);\r
-        return;\r
-    }\r
-    send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_GRAYCARD_TEST);\r
-    FT_RESULTS_t ft_result = hx3695_factroy_test(GRAY_CARD_TEST);\r
-    send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\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[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
-\r
-    factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
-                        BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
-                        0x05,\r
-                        databuf,\r
-                        12);\r
-    graycard_flag++;\r
-}\r
-\r
-void ble_leaklight_check_timer_callback(void)\r
-{\r
-    if(leaklight_flag == 10)\r
-    {\r
-        leaklight_flag = 0;\r
-        osTimerStop(g_ble_leaklight_timer);\r
-        osTimerDelete(g_ble_leaklight_timer);\r
-        return;\r
-    }\r
-    send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_LEAKLIGHT_TEST);\r
-    FT_RESULTS_t ft_result = hx3695_factroy_test(LEAK_LIGHT_TEST);\r
-    send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\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[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
-    factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
-                        BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
-                        0x06,\r
-                        databuf,\r
-                        12);\r
-    leaklight_flag++;\r
-}\r
-\r
 void aging_task(void)\r
 {\r
     while(aging_t.flag == 0xfdfd0002 && aging_time)\r
@@ -1152,14 +1060,73 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             } else if(testitem == 0x05)\r
             {\r
                 //灰卡测试\r
-                g_ble_graycard_timer = osTimerNew((osTimerFunc_t)ble_graycard_check_timer_callback, osTimerPeriodic, NULL, NULL);\r
-                osTimerStart(g_ble_graycard_timer,400);\r
+                    send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_GRAYCARD_TEST);\r
+                    FT_RESULTS_t ft_result = hx3695_factroy_test(GRAY_CARD_TEST);\r
+                    send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\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[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
+\r
+                    factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+                                        BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
+                                        0x05,\r
+                                        databuf,\r
+                                        12);\r
 \r
             } else if(testitem == 0x06)\r
             {\r
                 //漏光测试\r
-                g_ble_leaklight_timer = osTimerNew((osTimerFunc_t)ble_leaklight_check_timer_callback, osTimerPeriodic, NULL, NULL);\r
-                osTimerStart(g_ble_leaklight_timer,400);\r
+                send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_LEAKLIGHT_TEST);\r
+                FT_RESULTS_t ft_result = hx3695_factroy_test(LEAK_LIGHT_TEST);\r
+                send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\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[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
+                factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+                                    BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
+                                    0x06,\r
+                                    databuf,\r
+                                    12);\r
 \r
             }\r
             break;\r
index 3a3751a..d0b3fed 100644 (file)
@@ -436,7 +436,7 @@ int mag_service_get_iAccuracy(void)
 \r
 int mmc5603_stop(void)\r
 {\r
-       SavePara_infile(saveData,4);\r
+       SavePara_infile(g_MagPara,4);\r
        MMC5603_Disable();\r
        return 0;\r
 }\r
index 23ed1d9..ca426e3 100644 (file)
@@ -184,6 +184,8 @@ void create_mag_queue(void)
         MMC_ERROR("[mag][service] app create mail fail\n");
     }
 }
+
+#define MAG_BOARD_TASK_SIZE   0x900
 errcode_t uapi_mag_service_init(void)
 {
     
@@ -205,7 +207,7 @@ errcode_t uapi_mag_service_init(void)
     taskcfg.create_queue_handle = create_mag_queue;
     taskcfg.attr.name="mag_service";
     taskcfg.attr.priority = TASK_PRIORITY_APP;
-    taskcfg.attr.stack_size = APP_BOARD_TASK_SIZE;
+    taskcfg.attr.stack_size = MAG_BOARD_TASK_SIZE;
     taskcfg.func = mag_service_check_task;
     taskcfg.use_mem = USE_EXTEND_MEM;