常规模式测试没问题的程序
This commit is contained in:
parent
f63b0d228b
commit
e51573df01
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -12,7 +12,7 @@
|
|||||||
"idf.openOcdConfigs": [
|
"idf.openOcdConfigs": [
|
||||||
"board/esp32s3-builtin.cfg"
|
"board/esp32s3-builtin.cfg"
|
||||||
],
|
],
|
||||||
"idf.portWin": "COM5",
|
"idf.portWin": "COM6",
|
||||||
"idf.flashType": "UART",
|
"idf.flashType": "UART",
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
"*.md": "markdown",
|
"*.md": "markdown",
|
||||||
|
|||||||
@ -24,10 +24,14 @@ int flux_test_time_series[6] = {40,30,24,20,18,15};
|
|||||||
/* 定于用于存储当前测试阶段的枚举变量 */
|
/* 定于用于存储当前测试阶段的枚举变量 */
|
||||||
enum Bs_test_Stage currentTestStage = BS_STAGE_NONE;
|
enum Bs_test_Stage currentTestStage = BS_STAGE_NONE;
|
||||||
|
|
||||||
|
/* 定义用于存储当前工作模式的变量,默认是bs模式 */
|
||||||
|
bool is_test_mode_nom = false;
|
||||||
|
|
||||||
/* 应用 event_homePage 中的测试状态显示变量 */
|
/* 应用 event_homePage 中的测试状态显示变量 */
|
||||||
extern bool is_bs_test_ing;
|
extern bool is_bs_test_ing;
|
||||||
extern bool is_nom_test_ing;
|
extern bool is_nom_test_ing;
|
||||||
|
|
||||||
|
/* 声明函数 */
|
||||||
extern void comulate_time_set(void);
|
extern void comulate_time_set(void);
|
||||||
|
|
||||||
/* 定义控制LED小灯的任务句柄 */
|
/* 定义控制LED小灯的任务句柄 */
|
||||||
@ -78,9 +82,16 @@ void nom_test_task(void* arg)
|
|||||||
vTaskResume(nom_stateLED_task_handle);
|
vTaskResume(nom_stateLED_task_handle);
|
||||||
|
|
||||||
/* 测试开始 */
|
/* 测试开始 */
|
||||||
|
FLUX_TEST_START;
|
||||||
|
/* 等待测试结束 */
|
||||||
vTaskDelay(time*1000 / portTICK_PERIOD_MS);
|
vTaskDelay(time*1000 / portTICK_PERIOD_MS);
|
||||||
|
|
||||||
|
/* 再等待2秒钟 */
|
||||||
|
vTaskDelay(2*1000 / portTICK_PERIOD_MS);
|
||||||
|
|
||||||
|
/* 下发数据获取指令 */
|
||||||
|
flux_test_result_get();
|
||||||
|
|
||||||
/* 测试结束 */
|
/* 测试结束 */
|
||||||
lv_label_set_text(ui_pageHome_labelStartTest,"Start Test Nom");
|
lv_label_set_text(ui_pageHome_labelStartTest,"Start Test Nom");
|
||||||
is_nom_test_ing = false;
|
is_nom_test_ing = false;
|
||||||
|
|||||||
@ -308,8 +308,14 @@ esp_err_t sd_current_fileIndex_get(void)
|
|||||||
* 1.文件头为 时间戳、设备类型、挡位、频率、流量体积
|
* 1.文件头为 时间戳、设备类型、挡位、频率、流量体积
|
||||||
* 2.向总的测试结果文件写入测试结果
|
* 2.向总的测试结果文件写入测试结果
|
||||||
*/
|
*/
|
||||||
esp_err_t sd_testData_write(void)
|
esp_err_t sd_testData_write(bool is_nom,float test_result)
|
||||||
{
|
{
|
||||||
|
if (is_test_mode_nom)
|
||||||
|
{
|
||||||
|
/* 获取当前挡位及呼吸频率 */
|
||||||
|
int32_t current_stage = lv_spinbox_get_value(ui_pageHome_spinboxStage);
|
||||||
|
int32_t current_rate = lv_spinbox_get_value(ui_pageHome_spinboxRate);
|
||||||
|
|
||||||
/* 打开当前测试文件 */
|
/* 打开当前测试文件 */
|
||||||
FILE *current_test_f = fopen(sdData.test_file_dir, "a+");
|
FILE *current_test_f = fopen(sdData.test_file_dir, "a+");
|
||||||
if (current_test_f == NULL)
|
if (current_test_f == NULL)
|
||||||
@ -317,13 +323,14 @@ esp_err_t sd_testData_write(void)
|
|||||||
ESP_LOGE(SD_TAG, "Failed to open file for writing");
|
ESP_LOGE(SD_TAG, "Failed to open file for writing");
|
||||||
return ESP_FAIL;
|
return ESP_FAIL;
|
||||||
}
|
}
|
||||||
fprintf(current_test_f,"%lld,%s,%d,%d,%ld,%.3f\n",\
|
fprintf(current_test_f,"%lld,%s,%d,%d,%ld,%ld,%.3f\n",\
|
||||||
sdData.current_time,\
|
sdData.current_time,\
|
||||||
sdData.strftime_buf,\
|
sdData.strftime_buf,\
|
||||||
|
is_nom,\
|
||||||
sdData.flux_test_result.current_device_type,\
|
sdData.flux_test_result.current_device_type,\
|
||||||
sdData.flux_test_result.current_stage,\
|
current_stage,\
|
||||||
sdData.flux_test_result.current_rate,\
|
current_rate,\
|
||||||
sdData.flux_test_result.current_test_result
|
test_result
|
||||||
);
|
);
|
||||||
fclose(current_test_f);
|
fclose(current_test_f);
|
||||||
|
|
||||||
@ -335,15 +342,17 @@ esp_err_t sd_testData_write(void)
|
|||||||
return ESP_FAIL;
|
return ESP_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(total_test_f,"%lld,%s,%d,%d,%ld,%.3f\n",\
|
fprintf(total_test_f,"%lld,%s,%d,%d,%ld,%ld,%.3f\n",\
|
||||||
sdData.current_time,\
|
sdData.current_time,\
|
||||||
sdData.strftime_buf,\
|
sdData.strftime_buf,\
|
||||||
|
is_nom,\
|
||||||
sdData.flux_test_result.current_device_type,\
|
sdData.flux_test_result.current_device_type,\
|
||||||
sdData.flux_test_result.current_stage,\
|
current_stage,\
|
||||||
sdData.flux_test_result.current_rate,\
|
current_rate,\
|
||||||
sdData.flux_test_result.current_test_result
|
test_result
|
||||||
);
|
);
|
||||||
fclose(total_test_f);
|
fclose(total_test_f);
|
||||||
|
}
|
||||||
|
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
@ -144,7 +144,7 @@ esp_err_t sd_current_fileIndex_get(void);
|
|||||||
* 1.文件头为 时间戳、设备类型、挡位、频率、流量体积
|
* 1.文件头为 时间戳、设备类型、挡位、频率、流量体积
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
esp_err_t sd_testData_write(void);
|
esp_err_t sd_testData_write(bool is_nom,float test_result);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@ -271,8 +271,6 @@ void ui_pageHome_screen_init(void)
|
|||||||
ui_pageHome_panelCenter = lv_obj_create(ui_pageHome_panelBody);
|
ui_pageHome_panelCenter = lv_obj_create(ui_pageHome_panelBody);
|
||||||
lv_obj_set_width(ui_pageHome_panelCenter, 297);
|
lv_obj_set_width(ui_pageHome_panelCenter, 297);
|
||||||
lv_obj_set_height(ui_pageHome_panelCenter, 430);
|
lv_obj_set_height(ui_pageHome_panelCenter, 430);
|
||||||
lv_obj_set_x(ui_pageHome_panelCenter, 0);
|
|
||||||
lv_obj_set_y(ui_pageHome_panelCenter, 1);
|
|
||||||
lv_obj_set_align(ui_pageHome_panelCenter, LV_ALIGN_CENTER);
|
lv_obj_set_align(ui_pageHome_panelCenter, LV_ALIGN_CENTER);
|
||||||
lv_obj_clear_flag(ui_pageHome_panelCenter, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
lv_obj_clear_flag(ui_pageHome_panelCenter, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||||
lv_obj_set_style_radius(ui_pageHome_panelCenter, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_radius(ui_pageHome_panelCenter, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
@ -701,7 +699,7 @@ void ui_pageHome_screen_init(void)
|
|||||||
lv_obj_set_width(ui_pageHome_labelstr22, LV_SIZE_CONTENT); /// 1
|
lv_obj_set_width(ui_pageHome_labelstr22, LV_SIZE_CONTENT); /// 1
|
||||||
lv_obj_set_height(ui_pageHome_labelstr22, LV_SIZE_CONTENT); /// 1
|
lv_obj_set_height(ui_pageHome_labelstr22, LV_SIZE_CONTENT); /// 1
|
||||||
lv_obj_set_x(ui_pageHome_labelstr22, 65);
|
lv_obj_set_x(ui_pageHome_labelstr22, 65);
|
||||||
lv_obj_set_y(ui_pageHome_labelstr22, 90);
|
lv_obj_set_y(ui_pageHome_labelstr22, 91);
|
||||||
lv_obj_set_align(ui_pageHome_labelstr22, LV_ALIGN_CENTER);
|
lv_obj_set_align(ui_pageHome_labelstr22, LV_ALIGN_CENTER);
|
||||||
lv_label_set_text(ui_pageHome_labelstr22, "State");
|
lv_label_set_text(ui_pageHome_labelstr22, "State");
|
||||||
lv_obj_set_style_text_font(ui_pageHome_labelstr22, &ui_font_MiSansN14, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_text_font(ui_pageHome_labelstr22, &ui_font_MiSansN14, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
@ -875,8 +873,8 @@ void ui_pageHome_screen_init(void)
|
|||||||
lv_spinbox_set_value(ui_pageHome_spinboxRate, 15);
|
lv_spinbox_set_value(ui_pageHome_spinboxRate, 15);
|
||||||
lv_obj_set_style_pad_left(ui_pageHome_spinboxRate, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_pad_left(ui_pageHome_spinboxRate, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
lv_obj_set_style_pad_right(ui_pageHome_spinboxRate, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_pad_right(ui_pageHome_spinboxRate, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
lv_obj_set_style_pad_top(ui_pageHome_spinboxRate, 10, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_pad_top(ui_pageHome_spinboxRate, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
lv_obj_set_style_pad_bottom(ui_pageHome_spinboxRate, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_pad_bottom(ui_pageHome_spinboxRate, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
lv_obj_set_style_text_align(ui_pageHome_spinboxRate, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_text_align(ui_pageHome_spinboxRate, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
lv_obj_set_style_text_font(ui_pageHome_spinboxRate, &ui_font_homePanelLabel, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_text_font(ui_pageHome_spinboxRate, &ui_font_homePanelLabel, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
|
|
||||||
@ -1014,8 +1012,8 @@ void ui_pageHome_screen_init(void)
|
|||||||
lv_spinbox_set_value(ui_pageHome_spinboxStage, 1);
|
lv_spinbox_set_value(ui_pageHome_spinboxStage, 1);
|
||||||
lv_obj_set_style_pad_left(ui_pageHome_spinboxStage, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_pad_left(ui_pageHome_spinboxStage, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
lv_obj_set_style_pad_right(ui_pageHome_spinboxStage, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_pad_right(ui_pageHome_spinboxStage, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
lv_obj_set_style_pad_top(ui_pageHome_spinboxStage, 7, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_pad_top(ui_pageHome_spinboxStage, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
lv_obj_set_style_pad_bottom(ui_pageHome_spinboxStage, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_pad_bottom(ui_pageHome_spinboxStage, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
lv_obj_set_style_text_color(ui_pageHome_spinboxStage, lv_color_hex(0x030000), LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_text_color(ui_pageHome_spinboxStage, lv_color_hex(0x030000), LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
lv_obj_set_style_text_opa(ui_pageHome_spinboxStage, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_text_opa(ui_pageHome_spinboxStage, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
lv_obj_set_style_text_align(ui_pageHome_spinboxStage, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
lv_obj_set_style_text_align(ui_pageHome_spinboxStage, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
@ -1136,6 +1134,7 @@ void ui_pageHome_screen_init(void)
|
|||||||
lv_obj_set_y(ui_pageHome_panelNomTest, 86);
|
lv_obj_set_y(ui_pageHome_panelNomTest, 86);
|
||||||
lv_obj_set_align(ui_pageHome_panelNomTest, LV_ALIGN_CENTER);
|
lv_obj_set_align(ui_pageHome_panelNomTest, LV_ALIGN_CENTER);
|
||||||
lv_obj_clear_flag(ui_pageHome_panelNomTest, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
lv_obj_clear_flag(ui_pageHome_panelNomTest, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||||
|
lv_obj_set_style_radius(ui_pageHome_panelNomTest, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||||
|
|
||||||
ui_pageHome_Label8 = lv_label_create(ui_pageHome_panelLeft);
|
ui_pageHome_Label8 = lv_label_create(ui_pageHome_panelLeft);
|
||||||
lv_obj_set_width(ui_pageHome_Label8, LV_SIZE_CONTENT); /// 1
|
lv_obj_set_width(ui_pageHome_Label8, LV_SIZE_CONTENT); /// 1
|
||||||
|
|||||||
@ -364,6 +364,9 @@ static void standard_volume_refresh(void)
|
|||||||
*/
|
*/
|
||||||
void on_buttonStartTest_clicked(lv_event_t * e)
|
void on_buttonStartTest_clicked(lv_event_t * e)
|
||||||
{
|
{
|
||||||
|
/* 设定当前工作模式为nom */
|
||||||
|
is_test_mode_nom = true;
|
||||||
|
|
||||||
/* 判断是否正在测试 */
|
/* 判断是否正在测试 */
|
||||||
if(is_nom_test_ing)
|
if(is_nom_test_ing)
|
||||||
{
|
{
|
||||||
@ -480,6 +483,9 @@ static void comulate_result_read(lv_timer_t * timer)
|
|||||||
*/
|
*/
|
||||||
void on_buttonStartTestBS_clicked(lv_event_t * e)
|
void on_buttonStartTestBS_clicked(lv_event_t * e)
|
||||||
{
|
{
|
||||||
|
/* 设定当前工作模式为bs */
|
||||||
|
is_test_mode_nom = false;
|
||||||
|
|
||||||
/* 判断是否正在测试 */
|
/* 判断是否正在测试 */
|
||||||
if(is_bs_test_ing)
|
if(is_bs_test_ing)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -212,18 +212,15 @@ void uart1_echoTask(void* arg)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* 获取测试结果并写入到SD卡中 */
|
/* 获取测试结果并写入到SD卡中 */
|
||||||
switch (lv_dropdown_get_selected(ui_pageFluxRead_dropdownPulseTimes))
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
sdData.flux_test_result.current_test_result = FluxMachineData.cumulativeVolume/10.0;
|
sdData.flux_test_result.current_test_result = FluxMachineData.cumulativeVolume/10.0;
|
||||||
break;
|
sd_testData_write(is_test_mode_nom,sdData.flux_test_result.current_test_result);
|
||||||
default:
|
if(is_test_mode_nom)
|
||||||
break;
|
{
|
||||||
}
|
/* 若当前是NOM模式,直接刷新结果在Nom的界面 */
|
||||||
sd_testData_write();
|
|
||||||
|
|
||||||
RefreshResult();
|
RefreshResult();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
/*获取当前液温*/
|
/*获取当前液温*/
|
||||||
bytes[0] = data[66];
|
bytes[0] = data[66];
|
||||||
bytes[1] = data[65];
|
bytes[1] = data[65];
|
||||||
@ -232,6 +229,7 @@ void uart1_echoTask(void* arg)
|
|||||||
|
|
||||||
memcpy(&FluxMachineData.liquidTemperature, bytes, 4);
|
memcpy(&FluxMachineData.liquidTemperature, bytes, 4);
|
||||||
lv_label_set_text_fmt(ui_pageFluxRead_labelLiquidTemperature,"%.2f",FluxMachineData.liquidTemperature);
|
lv_label_set_text_fmt(ui_pageFluxRead_labelLiquidTemperature,"%.2f",FluxMachineData.liquidTemperature);
|
||||||
|
#endif
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
lv_obj_clear_state(ui_pageFluxRead_checkboxUnfinished,LV_STATE_CHECKED);
|
lv_obj_clear_state(ui_pageFluxRead_checkboxUnfinished,LV_STATE_CHECKED);
|
||||||
@ -430,11 +428,6 @@ esp_err_t RefreshResult(void)
|
|||||||
float breathVolume = FluxMachineData.cumulativeVolume/FluxMachineData.breathTimes;
|
float breathVolume = FluxMachineData.cumulativeVolume/FluxMachineData.breathTimes;
|
||||||
lv_label_set_text_fmt(ui_pageHome_labelTestVolume,"%.2f",breathVolume);
|
lv_label_set_text_fmt(ui_pageHome_labelTestVolume,"%.2f",breathVolume);
|
||||||
|
|
||||||
#if 0
|
|
||||||
sdData.flux_test_result.current_test_result = breathVolume;
|
|
||||||
sd_testData_write();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*获取测试体积上下限*/
|
/*获取测试体积上下限*/
|
||||||
float testVolumeUpper = atoff(lv_label_get_text(ui_pageHome_labelNominalVolumeMax));
|
float testVolumeUpper = atoff(lv_label_get_text(ui_pageHome_labelNominalVolumeMax));
|
||||||
float testVolumeLower = atoff(lv_label_get_text(ui_pageHome_labelNominalVolumeMin));
|
float testVolumeLower = atoff(lv_label_get_text(ui_pageHome_labelNominalVolumeMin));
|
||||||
|
|||||||
@ -132,6 +132,9 @@ extern struct ModbusRTU_Frame flux_frame_start;
|
|||||||
/* 启动指令下发事件组 */
|
/* 启动指令下发事件组 */
|
||||||
extern EventGroupHandle_t start_state_event_group;
|
extern EventGroupHandle_t start_state_event_group;
|
||||||
|
|
||||||
|
/* 导出当前工作模式的变量 */
|
||||||
|
extern bool is_test_mode_nom;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 启动指令下发宏函数
|
* @brief 启动指令下发宏函数
|
||||||
*
|
*
|
||||||
|
|||||||
@ -40,8 +40,8 @@ extern "C" void app_main(void)
|
|||||||
/* 创建测试结果文件 */
|
/* 创建测试结果文件 */
|
||||||
sprintf(sdData.test_file_dir,"/sdcard/result%d.txt",sdData.file_index);
|
sprintf(sdData.test_file_dir,"/sdcard/result%d.txt",sdData.file_index);
|
||||||
FILE *result_f = fopen(sdData.test_file_dir, "w");
|
FILE *result_f = fopen(sdData.test_file_dir, "w");
|
||||||
/* 文件头为 时间戳、设备类型、挡位、频率、流量体积 */
|
/* 文件头为 时间戳、是否Nom模式、设备类型、挡位、频率、流量体积 */
|
||||||
fprintf(result_f, "timestamp,timeStr,device type,stage,rate,volume\n");
|
fprintf(result_f, "timestamp,timeStr,is_nom,device type,stage,rate,volume\n");
|
||||||
fclose(result_f);
|
fclose(result_f);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user