新增修改测试数据颜色部分代码,存在部分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次循环测计数 */ /* 进行6次循环测计数 */
uint8_t testCount = 0; 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测试结果 *0-5 15-40BPM测试结果
*6 *6
@ -115,7 +116,7 @@ void bs_test_task(void* arg)
/* 调节呼吸模拟器频率 */ /* 调节呼吸模拟器频率 */
bs_bpm_send(bs_addr_all[testCount]); bs_bpm_send(bs_addr_all[testCount]);
lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s %s",test_rate[testCount],test_info[5]); 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]); flux_test_time_set(flux_test_time_series[testCount]);
@ -140,28 +141,34 @@ void bs_test_task(void* arg)
/* 读取测试结果 */ /* 读取测试结果 */
flux_test_result_get(); flux_test_result_get();
WRITE_LOG_TO_SD("测试结果获取中");
lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s %s",test_rate[testCount],test_info[3]); lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s %s",test_rate[testCount],test_info[3]);
/* 等待2s进行结果获取 */ /* 等待2s进行结果获取 */
vTaskDelay(2000 / portTICK_PERIOD_MS); vTaskDelay(3000 / portTICK_PERIOD_MS);
/* 清空进度条 */ /* 清空进度条 */
xEventGroupClearBits(g_bs_test_event_group,BIT6); xEventGroupClearBits(g_bs_test_event_group,BIT6);
FLUX_PROGRESS_BAR_CONTROL(0); 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++; testCount++;
WRITE_LOG_TO_SD("测试结果正常,进行下一挡位测试");
}else{ }else{
WRITE_LOG_TO_SD("测试结果异常,再次测试?");
/* 测试失败,重复上一次测试 */ /* 测试失败,重复上一次测试 */
lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s %s",test_rate[testCount],"retry"); lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s %s",test_rate[testCount],"retry");
retest_count++; retest_count++;
if(retest_count == 2) if(retest_count == 2)
{ {
lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s %s",test_rate[testCount],"failed"); lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s %s",test_rate[testCount],"failed");
WRITE_LOG_TO_SD("测试失败 进行下一档测试,暂时放弃该挡位");
/* 当前挡位失败,进行下一挡位测试 */ /* 当前挡位失败,进行下一挡位测试 */
retest_count = 0; retest_count = 0;
testCount++; testCount++;
@ -169,6 +176,7 @@ void bs_test_task(void* arg)
} }
if (testCount == 6) if (testCount == 6)
{ {
WRITE_LOG_TO_SD("测试结束");
break; break;
} }
} }
@ -177,6 +185,7 @@ void bs_test_task(void* arg)
lv_label_set_text_fmt(ui_pageHome_labelBSInfo,"%s",test_info[4]); 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_labelStartTest1,"Start Test BS");
lv_label_set_text(ui_pageHome_labelBSInfo,"wait for test"); 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_LabelRate25Result, "0");\
lv_label_set_text(ui_pageHome_LabelRate30Result, "0");\ lv_label_set_text(ui_pageHome_LabelRate30Result, "0");\
lv_label_set_text(ui_pageHome_LabelRate35Result, "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"); #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); void soft_timer_task(void* arg);
#endif #endif
/*获取当前时间*/ /**
* @brief API
*
*
*
* @return
*/
char* get_time_str(void); char* get_time_str(void);
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -216,6 +216,8 @@ void on_switchShutOff_valueChanged(lv_event_t * e)
/* 清空SD卡中的内容 */ /* 清空SD卡中的内容 */
void on_buttonClearSD_clicked(lv_event_t * e) void on_buttonClearSD_clicked(lv_event_t * e)
{ {
/* 取消掉掉这个功能 */
#if 0
server_addr.sin_family = AF_INET; server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(5656); server_addr.sin_port = htons(5656);
server_addr.sin_addr.s_addr = inet_addr("192.168.155.238"); 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{ }else{
ESP_LOGI("on_buttonClearSD_clicked", "sendto success"); ESP_LOGI("on_buttonClearSD_clicked", "sendto success");
} }
#endif
} }
static void bs_clicked_1s(lv_timer_t * timer) static void bs_clicked_1s(lv_timer_t * timer)
{ {
/* 隔了1秒后执行一次发送 false */
uint16_t currentRate = lv_dropdown_get_selected(ui_pageLung_Dropdown1); uint16_t currentRate = lv_dropdown_get_selected(ui_pageLung_Dropdown1);
ModbusRTU_Send_0x05(bs_addr_all[currentRate],false); 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) 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, /* Configure parameters of an UART driver,
* communication pins and install the driver */ * communication pins and install the driver */
uart_config_t uart_config = { uart_config_t uart_config = {
@ -220,42 +228,11 @@ void uart1_echoTask(void* arg)
/* 若当前是NOM模式直接刷新结果在Nom的界面 */ /* 若当前是NOM模式直接刷新结果在Nom的界面 */
RefreshResult(); RefreshResult();
}else{ }else{
WRITE_LOG_TO_SD("判断当前测试模式为BS模式");
/* 若当前是BS模式刷新结果在BS的界面 */ /* 若当前是BS模式刷新结果在BS的界面 */
sdData.flux_test_result.test_result[currentTestRate] = sdData.flux_test_result.current_test_result; 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) switch (device_type)
{ {
@ -272,15 +249,88 @@ void uart1_echoTask(void* arg)
break; break;
} }
float stage_rate_volume = stage_volume/((currentTestRate+3.0)*5); /* 计算呼吸频率下的体积流量值 */
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)) 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 */ /* 测试结果不合格刷新结果为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{ }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{ }else{
@ -376,7 +426,7 @@ void uart2_echoTask(void* arg)
//lv_label_set_text(ui_pageLung_labelDataFromBS,(char *)data); //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]); 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_labelBSInfo,"wait for test");
lv_label_set_text(ui_pageHome_labelstr21,"--BPM"); 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_LabelRate15Result, lv_color_hex(0x000000), 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_LabelRate20Result, lv_color_hex(0x000000), 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_LabelRate25Result, lv_color_hex(0x000000), 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_LabelRate30Result, lv_color_hex(0x000000), 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_LabelRate35Result, lv_color_hex(0x000000), 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_LabelRate40Result, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
/* UDP通讯接口初始化 */ /* UDP通讯接口初始化 */
server_addr.sin_addr.s_addr = inet_addr(UDP_HOST_IP); server_addr.sin_addr.s_addr = inet_addr(UDP_HOST_IP);