新增修改测试数据颜色部分代码,存在部分bug

This commit is contained in:
ipason 2025-05-10 16:55:01 +08:00
parent 7d867ec6b1
commit db7c0f4c7a
6 changed files with 127 additions and 51 deletions

View File

@ -94,8 +94,9 @@ void bs_test_task(void* arg)
/* 进行6次循环测计数 */
uint8_t testCount = 0;
/* 清空所有事件组 */
xEventGroupClearBits(g_bs_test_event_group,BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6);
/* 默认所有频率结果正确 */
xEventGroupSetBits(g_bs_test_event_group,BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6);
ESP_LOGI("bs_test_task", "初始化后判断事件组的值%lu", xEventGroupGetBits(g_bs_test_event_group));
/*
*0-5 15-40BPM测试结果
*6
@ -115,7 +116,7 @@ void bs_test_task(void* arg)
/* 调节呼吸模拟器频率 */
bs_bpm_send(bs_addr_all[testCount]);
lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s %s",test_rate[testCount],test_info[5]);
vTaskDelay(5000 / portTICK_PERIOD_MS);
vTaskDelay(10000 / portTICK_PERIOD_MS);
/* 下发测试时间 */
flux_test_time_set(flux_test_time_series[testCount]);
@ -140,28 +141,34 @@ void bs_test_task(void* arg)
/* 读取测试结果 */
flux_test_result_get();
WRITE_LOG_TO_SD("测试结果获取中");
lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s %s",test_rate[testCount],test_info[3]);
/* 等待2s进行结果获取 */
vTaskDelay(2000 / portTICK_PERIOD_MS);
vTaskDelay(3000 / portTICK_PERIOD_MS);
/* 清空进度条 */
xEventGroupClearBits(g_bs_test_event_group,BIT6);
FLUX_PROGRESS_BAR_CONTROL(0);
ESP_LOGI("bs_test_task", "判断事件组的值%lu", xEventGroupGetBits(g_bs_test_event_group));
/* 根据测试结果确定是否需要复测 */
if (xEventGroupGetBits(g_bs_test_event_group) & g_bs_test_event_group_bits[testCount])
if ((xEventGroupGetBits(g_bs_test_event_group) & g_bs_test_event_group_bits[testCount])!= 0)
{
/* 测试结果正常,进行下一挡位测试 */
testCount++;
WRITE_LOG_TO_SD("测试结果正常,进行下一挡位测试");
}else{
WRITE_LOG_TO_SD("测试结果异常,再次测试?");
/* 测试失败,重复上一次测试 */
lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s %s",test_rate[testCount],"retry");
retest_count++;
if(retest_count == 2)
{
lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s %s",test_rate[testCount],"failed");
WRITE_LOG_TO_SD("测试失败 进行下一档测试,暂时放弃该挡位");
/* 当前挡位失败,进行下一挡位测试 */
retest_count = 0;
testCount++;
@ -169,6 +176,7 @@ void bs_test_task(void* arg)
}
if (testCount == 6)
{
WRITE_LOG_TO_SD("测试结束");
break;
}
}
@ -177,6 +185,7 @@ void bs_test_task(void* arg)
lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s",test_info[4]);
WRITE_LOG_TO_SD("测试结束 任务回收");
/* 任务测试完毕 删除任务 */
lv_label_set_text(ui_pageHome_labelStartTest1,"Start Test BS");
lv_label_set_text(ui_pageHome_labelBSInfo,"wait for test");

View File

@ -138,7 +138,13 @@ extern struct sockaddr_in server_addr;
lv_label_set_text(ui_pageHome_LabelRate25Result, "0");\
lv_label_set_text(ui_pageHome_LabelRate30Result, "0");\
lv_label_set_text(ui_pageHome_LabelRate35Result, "0");\
lv_label_set_text(ui_pageHome_LabelRate40Result, "0");
lv_label_set_text(ui_pageHome_LabelRate40Result, "0");\
lv_obj_set_style_text_color(ui_pageHome_LabelRate15Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);\
lv_obj_set_style_text_color(ui_pageHome_LabelRate20Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);\
lv_obj_set_style_text_color(ui_pageHome_LabelRate25Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);\
lv_obj_set_style_text_color(ui_pageHome_LabelRate30Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);\
lv_obj_set_style_text_color(ui_pageHome_LabelRate35Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);\
lv_obj_set_style_text_color(ui_pageHome_LabelRate40Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
#define NOM_ALL_RESULT_CLEAR lv_label_set_text(ui_pageHome_labelTestResult, "0");

View File

@ -47,7 +47,13 @@ void time_synic_task(void *arg);
void soft_timer_task(void* arg);
#endif
/*获取当前时间*/
/**
* @brief API
*
*
*
* @return
*/
char* get_time_str(void);
#ifdef __cplusplus

View File

@ -216,6 +216,8 @@ void on_switchShutOff_valueChanged(lv_event_t * e)
/* 清空SD卡中的内容 */
void on_buttonClearSD_clicked(lv_event_t * e)
{
/* 取消掉掉这个功能 */
#if 0
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(5656);
server_addr.sin_addr.s_addr = inet_addr("192.168.155.238");
@ -228,11 +230,14 @@ void on_buttonClearSD_clicked(lv_event_t * e)
}else{
ESP_LOGI("on_buttonClearSD_clicked", "sendto success");
}
#endif
}
static void bs_clicked_1s(lv_timer_t * timer)
{
/* 隔了1秒后执行一次发送 false */
uint16_t currentRate = lv_dropdown_get_selected(ui_pageLung_Dropdown1);
ModbusRTU_Send_0x05(bs_addr_all[currentRate],false);
}

View File

@ -121,6 +121,14 @@ unsigned short CRC16(unsigned char* pchMsg, unsigned short wDataLen)
*/
void uart1_echoTask(void* arg)
{
/* 获取当前设备类型 */
uint16_t device_type = lv_dropdown_get_selected(ui_pageHome_DropdownTestTypeBS);
int32_t current_stage = lv_spinbox_get_value(ui_pageHome_spinboxStageBS);
float stage_volume = 0;
float stage_rate_volume = 0;
/* 记录测试结果是否合格 */
bool is_test_result_right = true;
/* Configure parameters of an UART driver,
* communication pins and install the driver */
uart_config_t uart_config = {
@ -220,42 +228,11 @@ void uart1_echoTask(void* arg)
/* 若当前是NOM模式直接刷新结果在Nom的界面 */
RefreshResult();
}else{
WRITE_LOG_TO_SD("判断当前测试模式为BS模式");
/* 若当前是BS模式刷新结果在BS的界面 */
sdData.flux_test_result.test_result[currentTestRate] = sdData.flux_test_result.current_test_result;
/* 根据当前BS测试阶段刷新结果 */
switch (currentTestRate)
{
case BS_RATE_15BPM:
/* 如果当前测试挡位为15BPM刷新结果在BS界面的15BPM界面 */
lv_label_set_text_fmt(ui_pageHome_LabelRate15Result,"%.1f",sdData.flux_test_result.current_test_result);
break;
case BS_RATE_20BPM:
lv_label_set_text_fmt(ui_pageHome_LabelRate20Result,"%.1f",sdData.flux_test_result.current_test_result);
break;
case BS_RATE_25BPM:
lv_label_set_text_fmt(ui_pageHome_LabelRate25Result,"%.1f",sdData.flux_test_result.current_test_result);
break;
case BS_RATE_30BPM:
lv_label_set_text_fmt(ui_pageHome_LabelRate30Result,"%.1f",sdData.flux_test_result.current_test_result);
break;
case BS_RATE_35BPM:
lv_label_set_text_fmt(ui_pageHome_LabelRate35Result,"%.1f",sdData.flux_test_result.current_test_result);
break;
case BS_RATE_40BPM:
lv_label_set_text_fmt(ui_pageHome_LabelRate40Result,"%.1f",sdData.flux_test_result.current_test_result);
break;
default:
break;
}
/* 获取当前设备类型 */
uint16_t device_type = lv_dropdown_get_selected(ui_pageHome_DropdownTestTypeBS);
int32_t current_stage = lv_spinbox_get_value(ui_pageHome_spinboxStageBS);
float stage_volume = 0;
/* 判断测试结果是否合格 */
switch (device_type)
{
@ -271,16 +248,89 @@ void uart1_echoTask(void* arg)
default:
break;
}
/* 计算呼吸频率下的体积流量值 */
stage_rate_volume = stage_volume/((currentTestRate+3.0)*5);
float stage_rate_volume = stage_volume/((currentTestRate+3.0)*5);
if((sdData.flux_test_result.current_test_result > stage_rate_volume * 1.15)|(sdData.flux_test_result.current_test_result < stage_rate_volume * 0.85))
{
/* 测试结果不合格刷新结果为X */
xEventGroupSetBits(g_bs_test_event_group,g_bs_test_event_group_bits[currentTestRate]);
xEventGroupClearBits(g_bs_test_event_group,g_bs_test_event_group_bits[currentTestRate]);
is_test_result_right = false;
WRITE_LOG_TO_SD("测试结果不合格");
}else{
/* 测试合格*/
xEventGroupClearBits(g_bs_test_event_group,g_bs_test_event_group_bits[currentTestRate]);
xEventGroupSetBits(g_bs_test_event_group,g_bs_test_event_group_bits[currentTestRate]);
is_test_result_right = true;
WRITE_LOG_TO_SD("测试结果合格");
}
/* 根据当前BS测试阶段刷新结果 */
switch (currentTestRate)
{
case BS_RATE_15BPM:
/* 如果当前测试挡位为15BPM刷新结果在BS界面的15BPM界面 */
lv_label_set_text_fmt(ui_pageHome_LabelRate15Result,"%.1f",sdData.flux_test_result.current_test_result);
if (is_test_result_right == false)
{
lv_obj_set_style_text_color(ui_pageHome_LabelRate15Result, lv_color_hex(0xFF0000), LV_PART_MAIN | LV_STATE_DEFAULT);
WRITE_LOG_TO_SD("15BPM 测试结果不合格 修改字体颜色为红色");
}else{
lv_obj_set_style_text_color(ui_pageHome_LabelRate15Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
WRITE_LOG_TO_SD("15BPM 测试结果合格 修改字体颜色为黑色");
}
break;
case BS_RATE_20BPM:
lv_label_set_text_fmt(ui_pageHome_LabelRate20Result,"%.1f",sdData.flux_test_result.current_test_result);
if (is_test_result_right == false)
{
lv_obj_set_style_text_color(ui_pageHome_LabelRate20Result, lv_color_hex(0xFF0000), LV_PART_MAIN | LV_STATE_DEFAULT);
}else{
lv_obj_set_style_text_color(ui_pageHome_LabelRate20Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
}
break;
case BS_RATE_25BPM:
lv_label_set_text_fmt(ui_pageHome_LabelRate25Result,"%.1f",sdData.flux_test_result.current_test_result);
if (is_test_result_right == false)
{
lv_obj_set_style_text_color(ui_pageHome_LabelRate25Result, lv_color_hex(0xFF0000), LV_PART_MAIN | LV_STATE_DEFAULT);
}else{
lv_obj_set_style_text_color(ui_pageHome_LabelRate25Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
}
break;
case BS_RATE_30BPM:
lv_label_set_text_fmt(ui_pageHome_LabelRate30Result,"%.1f",sdData.flux_test_result.current_test_result);
if (is_test_result_right == false)
{
lv_obj_set_style_text_color(ui_pageHome_LabelRate30Result, lv_color_hex(0xFF0000), LV_PART_MAIN | LV_STATE_DEFAULT);
}else{
lv_obj_set_style_text_color(ui_pageHome_LabelRate30Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
}
break;
case BS_RATE_35BPM:
lv_label_set_text_fmt(ui_pageHome_LabelRate35Result,"%.1f",sdData.flux_test_result.current_test_result);
if (is_test_result_right == false)
{
lv_obj_set_style_text_color(ui_pageHome_LabelRate35Result, lv_color_hex(0xFF0000), LV_PART_MAIN | LV_STATE_DEFAULT);
}else{
lv_obj_set_style_text_color(ui_pageHome_LabelRate35Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
}
break;
case BS_RATE_40BPM:
lv_label_set_text_fmt(ui_pageHome_LabelRate40Result,"%.1f",sdData.flux_test_result.current_test_result);
if (is_test_result_right == false)
{
lv_obj_set_style_text_color(ui_pageHome_LabelRate40Result, lv_color_hex(0xFF0000), LV_PART_MAIN | LV_STATE_DEFAULT);
}else{
lv_obj_set_style_text_color(ui_pageHome_LabelRate40Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
}
break;
default:
break;
}
}
}else{
@ -376,7 +426,7 @@ void uart2_echoTask(void* arg)
//lv_label_set_text(ui_pageLung_labelDataFromBS,(char *)data);
lv_label_set_text_fmt(ui_pageLung_labelDataFromBS,"%02x %02x %02x %02x %02x %02x %02x %02x",data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7]);
ESP_LOGI("uart2_echoTask", "Read %d bytes: '%s'", len, data);
//ESP_LOGI("uart2_echoTask", "Read %d bytes: '%s'", len, data);
}
}

View File

@ -183,13 +183,13 @@ extern "C" void app_main(void)
lv_label_set_text(ui_pageHome_labelBSInfo,"wait for test");
lv_label_set_text(ui_pageHome_labelstr21,"--BPM");
/* 设置测试结果为绿色 */
lv_obj_set_style_text_color(ui_pageHome_LabelRate15Result, lv_color_hex(0x00FF00), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(ui_pageHome_LabelRate20Result, lv_color_hex(0x00FF00), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(ui_pageHome_LabelRate25Result, lv_color_hex(0x00FF00), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(ui_pageHome_LabelRate30Result, lv_color_hex(0x00FF00), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(ui_pageHome_LabelRate35Result, lv_color_hex(0x00FF00), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(ui_pageHome_LabelRate40Result, lv_color_hex(0x00FF00), LV_PART_MAIN | LV_STATE_DEFAULT);
/* 设置测试结果为色 */
lv_obj_set_style_text_color(ui_pageHome_LabelRate15Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(ui_pageHome_LabelRate20Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(ui_pageHome_LabelRate25Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(ui_pageHome_LabelRate30Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(ui_pageHome_LabelRate35Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(ui_pageHome_LabelRate40Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
/* UDP通讯接口初始化 */
server_addr.sin_addr.s_addr = inet_addr(UDP_HOST_IP);