常规模式成功添加进度条及LED灯

This commit is contained in:
ipason 2025-04-23 14:50:59 +08:00
parent 4479b9b00c
commit cdb811ac5a
8 changed files with 248 additions and 97 deletions

View File

@ -52,6 +52,7 @@
"fluxsd.h": "c",
"bitset": "c",
"algorithm": "c",
"format": "c"
"format": "c",
"cstdint": "c"
}
}

View File

@ -26,9 +26,13 @@ enum Bs_test_Stage currentTestStage = BS_STAGE_NONE;
/* 应用 event_homePage 中的测试状态显示变量 */
extern bool is_bs_test_ing;
extern bool is_nom_test_ing;
extern void comulate_time_set(void);
/* 定义控制LED小灯的任务句柄 */
TaskHandle_t bs_stateLED_task_handle;
TaskHandle_t nom_stateLED_task_handle;
/*
* @brief
@ -50,6 +54,45 @@ char *test_info[] = {"Time setting sent successfully!!",\
/* 导出协议数据结构体 */
struct FluxProtocol fluxProtocol;
/**
* @brief
*
* @param[in] arg not used
*
*/
void nom_test_task(void* arg)
{
float time = 0;
while (1)
{
/* 开始测试前 下发积分时间,确保测试时间正确 */
comulate_time_set();
time = (float)lv_spinbox_get_value(ui_pageFluxRead_spinboxTime);
flux_test_time_set(time);
lv_label_set_text(ui_pageHome_labelStartTest,"Cancel Test Nom");
lv_bar_set_value(ui_pageHome_barNomTest,0,LV_ANIM_ON);
/* 恢复LED显示任务 */
vTaskResume(nom_stateLED_task_handle);
/* 测试开始 */
vTaskDelay(time*1000 / portTICK_PERIOD_MS);
/* 测试结束 */
lv_label_set_text(ui_pageHome_labelStartTest,"Start Test Nom");
is_nom_test_ing = false;
/* 挂起LED显示任务 */
NOM_STATE_LED_TASK_SUSPEND;
lv_bar_set_value(ui_pageHome_barNomTest,0,LV_ANIM_ON);
vTaskDelete(NULL);
}
}
/**
* @brief BS测试的任务函数
*
@ -150,6 +193,44 @@ void bs_test_led_task(void* arg)
}
}
/**
* @brief 线
*
* LED小灯bling bling
*
* @param[in] arg not used
*
*/
void nom_test_led_task(void* arg)
{
int32_t time_all = 0;
int32_t bar_plus = 0;
int32_t current_bar_value = 0;
while(1)
{
vTaskDelay(NOM_LED_BLINK_INTERVAL_MS / portTICK_PERIOD_MS);
lv_obj_set_style_bg_color(ui_pageHome_panelNomTest,lv_color_hex(0x00FF00),LV_PART_MAIN);
vTaskDelay(NOM_LED_BLINK_INTERVAL_MS / portTICK_PERIOD_MS);
lv_obj_set_style_bg_color(ui_pageHome_panelNomTest,lv_color_hex(0xFFFFFF),LV_PART_MAIN);
/* 获取总的测试时间 */
time_all = lv_spinbox_get_value(ui_pageFluxRead_spinboxTime);
/* 获取每次需要累加的值*/
bar_plus = lv_bar_get_max_value(ui_pageHome_barNomTest) / time_all;
/* 获取当前的进度条值*/
current_bar_value = lv_bar_get_value(ui_pageHome_barNomTest);
if (current_bar_value + bar_plus < lv_bar_get_max_value(ui_pageHome_barNomTest))
{
lv_bar_set_value(ui_pageHome_barNomTest,current_bar_value+bar_plus,LV_ANIM_ON);
}
}
}
/**
* @brief
*

View File

@ -41,9 +41,11 @@ extern char *test_info[];
/* 导出LED小灯控制句柄 */
extern TaskHandle_t bs_stateLED_task_handle;
extern TaskHandle_t nom_stateLED_task_handle;
/* 定义LED小灯闪烁时间间隔 ms */
#define BS_LED_BLINK_INTERVAL_MS 500
#define NOM_LED_BLINK_INTERVAL_MS 500
/* 定义枚举用于标记当前测试阶段 */
typedef enum Bs_test_Stage{
@ -117,10 +119,16 @@ typedef struct FluxCommand
lv_label_set_text(ui_pageHome_LabelRate35Result, "0");\
lv_label_set_text(ui_pageHome_LabelRate40Result, "0");
#define NOM_ALL_RESULT_CLEAR lv_label_set_text(ui_pageHome_labelTestResult, "0");
/* 创建led任务挂起宏函数 */
#define BS_STATE_LED_TASK_SUSPEND vTaskSuspend(bs_stateLED_task_handle);\
lv_obj_set_style_bg_color(ui_pageHome_panelBSLEDing,lv_color_hex(0xFFFFFF),LV_PART_MAIN);
/* 创建常规测试led任务挂起宏函数 */
#define NOM_STATE_LED_TASK_SUSPEND vTaskSuspend(nom_stateLED_task_handle);\
lv_obj_set_style_bg_color(ui_pageHome_panelNomTest,lv_color_hex(0xFFFFFF),LV_PART_MAIN);
/* BS测试过程中快速显示测试状态 */
#define BS_HOMEPAGE_SHOW(x) lv_label_set_text(ui_pageHome_labelBSInfo,x);
@ -174,6 +182,24 @@ void flux_test_start(void);
*/
void flux_test_result_get(void);
/**
* @brief 线
*
* LED小灯bling bling
*
* @param[in] arg not used
*
*/
void nom_test_led_task(void* arg);
/**
* @brief
*
* @param[in] arg not used
*
*/
void nom_test_task(void* arg);
#ifdef __cplusplus
} /*extern "C"*/
#endif

View File

@ -272,7 +272,7 @@ void ui_pageHome_screen_init(void)
lv_obj_set_width(ui_pageHome_panelCenter, 297);
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_y(ui_pageHome_panelCenter, 1);
lv_obj_set_align(ui_pageHome_panelCenter, LV_ALIGN_CENTER);
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);
@ -791,17 +791,17 @@ void ui_pageHome_screen_init(void)
ui_pageHome_panelLeft = lv_obj_create(ui_pageHome_panelBody);
lv_obj_set_width(ui_pageHome_panelLeft, 297);
lv_obj_set_height(ui_pageHome_panelLeft, 430);
lv_obj_set_x(ui_pageHome_panelLeft, -313);
lv_obj_set_y(ui_pageHome_panelLeft, -2);
lv_obj_set_x(ui_pageHome_panelLeft, -320);
lv_obj_set_y(ui_pageHome_panelLeft, 0);
lv_obj_set_align(ui_pageHome_panelLeft, LV_ALIGN_CENTER);
lv_obj_clear_flag(ui_pageHome_panelLeft, LV_OBJ_FLAG_SCROLLABLE); /// Flags
lv_obj_set_style_radius(ui_pageHome_panelLeft, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
ui_pageHome_panelNominal = lv_obj_create(ui_pageHome_panelLeft);
lv_obj_set_width(ui_pageHome_panelNominal, 266);
lv_obj_set_height(ui_pageHome_panelNominal, 50);
lv_obj_set_height(ui_pageHome_panelNominal, 47);
lv_obj_set_x(ui_pageHome_panelNominal, 0);
lv_obj_set_y(ui_pageHome_panelNominal, -118);
lv_obj_set_y(ui_pageHome_panelNominal, -134);
lv_obj_set_align(ui_pageHome_panelNominal, LV_ALIGN_CENTER);
lv_obj_clear_flag(ui_pageHome_panelNominal, LV_OBJ_FLAG_SCROLLABLE); /// Flags
@ -848,37 +848,35 @@ void ui_pageHome_screen_init(void)
ui_pageHome_panelRate = lv_obj_create(ui_pageHome_panelLeft);
lv_obj_set_width(ui_pageHome_panelRate, 266);
lv_obj_set_height(ui_pageHome_panelRate, 100);
lv_obj_set_height(ui_pageHome_panelRate, 79);
lv_obj_set_x(ui_pageHome_panelRate, 0);
lv_obj_set_y(ui_pageHome_panelRate, -33);
lv_obj_set_y(ui_pageHome_panelRate, -66);
lv_obj_set_align(ui_pageHome_panelRate, LV_ALIGN_CENTER);
lv_obj_clear_flag(ui_pageHome_panelRate, LV_OBJ_FLAG_SCROLLABLE); /// Flags
ui_pageHome_labelstr4 = lv_label_create(ui_pageHome_panelRate);
lv_obj_set_width(ui_pageHome_labelstr4, LV_SIZE_CONTENT); /// 1
lv_obj_set_height(ui_pageHome_labelstr4, LV_SIZE_CONTENT); /// 1
lv_obj_set_x(ui_pageHome_labelstr4, -49);
lv_obj_set_y(ui_pageHome_labelstr4, -23);
lv_obj_set_x(ui_pageHome_labelstr4, -71);
lv_obj_set_y(ui_pageHome_labelstr4, -20);
lv_obj_set_align(ui_pageHome_labelstr4, LV_ALIGN_CENTER);
lv_label_set_text(ui_pageHome_labelstr4, "呼吸频率BPM");
lv_label_set_text(ui_pageHome_labelstr4, "频率BPM");
lv_obj_set_style_text_font(ui_pageHome_labelstr4, &ui_font_homeText, LV_PART_MAIN | LV_STATE_DEFAULT);
ui_pageHome_spinboxRate = lv_spinbox_create(ui_pageHome_panelRate);
lv_obj_set_width(ui_pageHome_spinboxRate, 70);
lv_obj_set_height(ui_pageHome_spinboxRate, 40);
lv_obj_set_x(ui_pageHome_spinboxRate, 80);
lv_obj_set_y(ui_pageHome_spinboxRate, -23);
lv_obj_set_width(ui_pageHome_spinboxRate, 45);
lv_obj_set_height(ui_pageHome_spinboxRate, 35);
lv_obj_set_x(ui_pageHome_spinboxRate, 0);
lv_obj_set_y(ui_pageHome_spinboxRate, 14);
lv_obj_set_align(ui_pageHome_spinboxRate, LV_ALIGN_CENTER);
lv_spinbox_set_digit_format(ui_pageHome_spinboxRate, 3, 0);
lv_spinbox_set_digit_format(ui_pageHome_spinboxRate, 2, 0);
lv_spinbox_set_range(ui_pageHome_spinboxRate, 15, 40);
lv_spinbox_set_cursor_pos(ui_pageHome_spinboxRate, 1 - 1);
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_right(ui_pageHome_spinboxRate, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_top(ui_pageHome_spinboxRate, 7, 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_bottom(ui_pageHome_spinboxRate, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_row(ui_pageHome_spinboxRate, 10, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_column(ui_pageHome_spinboxRate, 0, 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);
@ -890,8 +888,8 @@ void ui_pageHome_screen_init(void)
ui_pageHome_buttonRateMinus = lv_btn_create(ui_pageHome_panelRate);
lv_obj_set_width(ui_pageHome_buttonRateMinus, 100);
lv_obj_set_height(ui_pageHome_buttonRateMinus, 37);
lv_obj_set_x(ui_pageHome_buttonRateMinus, -68);
lv_obj_set_y(ui_pageHome_buttonRateMinus, 19);
lv_obj_set_x(ui_pageHome_buttonRateMinus, -78);
lv_obj_set_y(ui_pageHome_buttonRateMinus, 14);
lv_obj_set_align(ui_pageHome_buttonRateMinus, LV_ALIGN_CENTER);
ui_pageHome_labelRateMinus = lv_label_create(ui_pageHome_buttonRateMinus);
@ -906,8 +904,8 @@ void ui_pageHome_screen_init(void)
ui_pageHome_buttonRatePlus = lv_btn_create(ui_pageHome_panelRate);
lv_obj_set_width(ui_pageHome_buttonRatePlus, 100);
lv_obj_set_height(ui_pageHome_buttonRatePlus, 37);
lv_obj_set_x(ui_pageHome_buttonRatePlus, 57);
lv_obj_set_y(ui_pageHome_buttonRatePlus, 19);
lv_obj_set_x(ui_pageHome_buttonRatePlus, 78);
lv_obj_set_y(ui_pageHome_buttonRatePlus, 14);
lv_obj_set_align(ui_pageHome_buttonRatePlus, LV_ALIGN_CENTER);
ui_pageHome_labelRatePlus = lv_label_create(ui_pageHome_buttonRatePlus);
@ -921,9 +919,9 @@ void ui_pageHome_screen_init(void)
ui_pageHome_panelResult = lv_obj_create(ui_pageHome_panelLeft);
lv_obj_set_width(ui_pageHome_panelResult, 266);
lv_obj_set_height(ui_pageHome_panelResult, 50);
lv_obj_set_height(ui_pageHome_panelResult, 42);
lv_obj_set_x(ui_pageHome_panelResult, 1);
lv_obj_set_y(ui_pageHome_panelResult, -178);
lv_obj_set_y(ui_pageHome_panelResult, -184);
lv_obj_set_align(ui_pageHome_panelResult, LV_ALIGN_CENTER);
lv_obj_clear_flag(ui_pageHome_panelResult, LV_OBJ_FLAG_SCROLLABLE); /// Flags
@ -948,17 +946,17 @@ void ui_pageHome_screen_init(void)
ui_pageHome_panelStage = lv_obj_create(ui_pageHome_panelLeft);
lv_obj_set_width(ui_pageHome_panelStage, 266);
lv_obj_set_height(ui_pageHome_panelStage, 80);
lv_obj_set_x(ui_pageHome_panelStage, 0);
lv_obj_set_y(ui_pageHome_panelStage, 64);
lv_obj_set_height(ui_pageHome_panelStage, 83);
lv_obj_set_x(ui_pageHome_panelStage, -1);
lv_obj_set_y(ui_pageHome_panelStage, 24);
lv_obj_set_align(ui_pageHome_panelStage, LV_ALIGN_CENTER);
lv_obj_clear_flag(ui_pageHome_panelStage, LV_OBJ_FLAG_SCROLLABLE); /// Flags
ui_pageHome_buttonMinus = lv_btn_create(ui_pageHome_panelStage);
lv_obj_set_width(ui_pageHome_buttonMinus, 94);
lv_obj_set_width(ui_pageHome_buttonMinus, 100);
lv_obj_set_height(ui_pageHome_buttonMinus, 37);
lv_obj_set_x(ui_pageHome_buttonMinus, -75);
lv_obj_set_y(ui_pageHome_buttonMinus, 14);
lv_obj_set_x(ui_pageHome_buttonMinus, -79);
lv_obj_set_y(ui_pageHome_buttonMinus, 18);
lv_obj_set_align(ui_pageHome_buttonMinus, LV_ALIGN_CENTER);
lv_obj_set_style_text_color(ui_pageHome_buttonMinus, lv_color_hex(0x050000), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_opa(ui_pageHome_buttonMinus, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
@ -977,8 +975,8 @@ void ui_pageHome_screen_init(void)
ui_pageHome_buttonAdd = lv_btn_create(ui_pageHome_panelStage);
lv_obj_set_width(ui_pageHome_buttonAdd, 100);
lv_obj_set_height(ui_pageHome_buttonAdd, 37);
lv_obj_set_x(ui_pageHome_buttonAdd, 71);
lv_obj_set_y(ui_pageHome_buttonAdd, 14);
lv_obj_set_x(ui_pageHome_buttonAdd, 79);
lv_obj_set_y(ui_pageHome_buttonAdd, 18);
lv_obj_set_align(ui_pageHome_buttonAdd, LV_ALIGN_CENTER);
lv_obj_set_style_text_color(ui_pageHome_buttonAdd, lv_color_hex(0x050000), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_opa(ui_pageHome_buttonAdd, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
@ -997,17 +995,17 @@ void ui_pageHome_screen_init(void)
ui_pageHome_labelstr6 = lv_label_create(ui_pageHome_panelStage);
lv_obj_set_width(ui_pageHome_labelstr6, LV_SIZE_CONTENT); /// 1
lv_obj_set_height(ui_pageHome_labelstr6, LV_SIZE_CONTENT); /// 1
lv_obj_set_x(ui_pageHome_labelstr6, -67);
lv_obj_set_y(ui_pageHome_labelstr6, -21);
lv_obj_set_x(ui_pageHome_labelstr6, -75);
lv_obj_set_y(ui_pageHome_labelstr6, -20);
lv_obj_set_align(ui_pageHome_labelstr6, LV_ALIGN_CENTER);
lv_label_set_text(ui_pageHome_labelstr6, "当前挡位");
lv_label_set_text(ui_pageHome_labelstr6, "测试挡位");
lv_obj_set_style_text_font(ui_pageHome_labelstr6, &ui_font_homeText, LV_PART_MAIN | LV_STATE_DEFAULT);
ui_pageHome_spinboxStage = lv_spinbox_create(ui_pageHome_panelStage);
lv_obj_set_width(ui_pageHome_spinboxStage, 40);
lv_obj_set_height(ui_pageHome_spinboxStage, 40);
lv_obj_set_x(ui_pageHome_spinboxStage, -2);
lv_obj_set_y(ui_pageHome_spinboxStage, 15);
lv_obj_set_height(ui_pageHome_spinboxStage, 35);
lv_obj_set_x(ui_pageHome_spinboxStage, 0);
lv_obj_set_y(ui_pageHome_spinboxStage, 18);
lv_obj_set_align(ui_pageHome_spinboxStage, LV_ALIGN_CENTER);
lv_obj_clear_flag(ui_pageHome_spinboxStage, LV_OBJ_FLAG_CLICKABLE); /// Flags
lv_spinbox_set_digit_format(ui_pageHome_spinboxStage, 1, 1);
@ -1028,29 +1026,37 @@ void ui_pageHome_screen_init(void)
lv_obj_set_style_text_color(ui_pageHome_spinboxStage, lv_color_hex(0x030000), LV_PART_CURSOR | LV_STATE_DEFAULT);
lv_obj_set_style_text_opa(ui_pageHome_spinboxStage, 255, LV_PART_CURSOR | LV_STATE_DEFAULT);
ui_pageHome_labelstr1 = lv_label_create(ui_pageHome_panelLeft);
ui_pageHome_Panel8 = lv_obj_create(ui_pageHome_panelLeft);
lv_obj_set_width(ui_pageHome_Panel8, 266);
lv_obj_set_height(ui_pageHome_Panel8, 40);
lv_obj_set_x(ui_pageHome_Panel8, 0);
lv_obj_set_y(ui_pageHome_Panel8, 122);
lv_obj_set_align(ui_pageHome_Panel8, LV_ALIGN_CENTER);
lv_obj_clear_flag(ui_pageHome_Panel8, LV_OBJ_FLAG_SCROLLABLE); /// Flags
ui_pageHome_labelstr1 = lv_label_create(ui_pageHome_Panel8);
lv_obj_set_width(ui_pageHome_labelstr1, LV_SIZE_CONTENT); /// 1
lv_obj_set_height(ui_pageHome_labelstr1, LV_SIZE_CONTENT); /// 1
lv_obj_set_x(ui_pageHome_labelstr1, -98);
lv_obj_set_y(ui_pageHome_labelstr1, 122);
lv_obj_set_x(ui_pageHome_labelstr1, -91);
lv_obj_set_y(ui_pageHome_labelstr1, 0);
lv_obj_set_align(ui_pageHome_labelstr1, LV_ALIGN_CENTER);
lv_label_set_text(ui_pageHome_labelstr1, "测试结果:");
lv_obj_set_style_text_font(ui_pageHome_labelstr1, &ui_font_MiSansN, LV_PART_MAIN | LV_STATE_DEFAULT);
ui_pageHome_labelstr2 = lv_label_create(ui_pageHome_panelLeft);
ui_pageHome_labelstr2 = lv_label_create(ui_pageHome_Panel8);
lv_obj_set_width(ui_pageHome_labelstr2, LV_SIZE_CONTENT); /// 1
lv_obj_set_height(ui_pageHome_labelstr2, LV_SIZE_CONTENT); /// 1
lv_obj_set_x(ui_pageHome_labelstr2, -27);
lv_obj_set_y(ui_pageHome_labelstr2, 123);
lv_obj_set_x(ui_pageHome_labelstr2, -30);
lv_obj_set_y(ui_pageHome_labelstr2, 0);
lv_obj_set_align(ui_pageHome_labelstr2, LV_ALIGN_CENTER);
lv_label_set_text(ui_pageHome_labelstr2, "");
lv_obj_set_style_text_font(ui_pageHome_labelstr2, &ui_font_MiSansN, LV_PART_MAIN | LV_STATE_DEFAULT);
ui_pageHome_panelTestResult = lv_obj_create(ui_pageHome_panelLeft);
ui_pageHome_panelTestResult = lv_obj_create(ui_pageHome_Panel8);
lv_obj_set_width(ui_pageHome_panelTestResult, 30);
lv_obj_set_height(ui_pageHome_panelTestResult, 30);
lv_obj_set_x(ui_pageHome_panelTestResult, 81);
lv_obj_set_y(ui_pageHome_panelTestResult, 122);
lv_obj_set_x(ui_pageHome_panelTestResult, 63);
lv_obj_set_y(ui_pageHome_panelTestResult, 0);
lv_obj_set_align(ui_pageHome_panelTestResult, LV_ALIGN_CENTER);
lv_obj_clear_flag(ui_pageHome_panelTestResult, LV_OBJ_FLAG_SCROLLABLE); /// Flags
@ -1062,38 +1068,38 @@ void ui_pageHome_screen_init(void)
lv_obj_set_align(ui_pageHome_labelTestResult, LV_ALIGN_CENTER);
lv_label_set_text(ui_pageHome_labelTestResult, "x");
ui_pageHome_labelResultStage = lv_label_create(ui_pageHome_panelLeft);
ui_pageHome_labelResultStage = lv_label_create(ui_pageHome_Panel8);
lv_obj_set_width(ui_pageHome_labelResultStage, LV_SIZE_CONTENT); /// 1
lv_obj_set_height(ui_pageHome_labelResultStage, LV_SIZE_CONTENT); /// 1
lv_obj_set_x(ui_pageHome_labelResultStage, -52);
lv_obj_set_y(ui_pageHome_labelResultStage, 122);
lv_obj_set_x(ui_pageHome_labelResultStage, -50);
lv_obj_set_y(ui_pageHome_labelResultStage, 0);
lv_obj_set_align(ui_pageHome_labelResultStage, LV_ALIGN_CENTER);
lv_label_set_text(ui_pageHome_labelResultStage, "1");
lv_obj_set_style_text_decor(ui_pageHome_labelResultStage, LV_TEXT_DECOR_UNDERLINE, LV_PART_MAIN | LV_STATE_DEFAULT);
ui_pageHome_labelResultRate = lv_label_create(ui_pageHome_panelLeft);
ui_pageHome_labelResultRate = lv_label_create(ui_pageHome_Panel8);
lv_obj_set_width(ui_pageHome_labelResultRate, LV_SIZE_CONTENT); /// 1
lv_obj_set_height(ui_pageHome_labelResultRate, LV_SIZE_CONTENT); /// 1
lv_obj_set_x(ui_pageHome_labelResultRate, -1);
lv_obj_set_y(ui_pageHome_labelResultRate, 123);
lv_obj_set_x(ui_pageHome_labelResultRate, -8);
lv_obj_set_y(ui_pageHome_labelResultRate, 1);
lv_obj_set_align(ui_pageHome_labelResultRate, LV_ALIGN_CENTER);
lv_label_set_text(ui_pageHome_labelResultRate, "15");
lv_obj_set_style_text_decor(ui_pageHome_labelResultRate, LV_TEXT_DECOR_UNDERLINE, LV_PART_MAIN | LV_STATE_DEFAULT);
ui_pageHome_labelstr3 = lv_label_create(ui_pageHome_panelLeft);
ui_pageHome_labelstr3 = lv_label_create(ui_pageHome_Panel8);
lv_obj_set_width(ui_pageHome_labelstr3, LV_SIZE_CONTENT); /// 1
lv_obj_set_height(ui_pageHome_labelstr3, LV_SIZE_CONTENT); /// 1
lv_obj_set_x(ui_pageHome_labelstr3, 38);
lv_obj_set_y(ui_pageHome_labelstr3, 124);
lv_obj_set_x(ui_pageHome_labelstr3, 25);
lv_obj_set_y(ui_pageHome_labelstr3, 0);
lv_obj_set_align(ui_pageHome_labelstr3, LV_ALIGN_CENTER);
lv_label_set_text(ui_pageHome_labelstr3, "BPM");
lv_obj_set_style_text_font(ui_pageHome_labelstr3, &ui_font_MiSansN, LV_PART_MAIN | LV_STATE_DEFAULT);
ui_pageHome_labelResultCompare = lv_label_create(ui_pageHome_panelLeft);
ui_pageHome_labelResultCompare = lv_label_create(ui_pageHome_Panel8);
lv_obj_set_width(ui_pageHome_labelResultCompare, LV_SIZE_CONTENT); /// 1
lv_obj_set_height(ui_pageHome_labelResultCompare, LV_SIZE_CONTENT); /// 1
lv_obj_set_x(ui_pageHome_labelResultCompare, 118);
lv_obj_set_y(ui_pageHome_labelResultCompare, 123);
lv_obj_set_x(ui_pageHome_labelResultCompare, 104);
lv_obj_set_y(ui_pageHome_labelResultCompare, 1);
lv_obj_set_align(ui_pageHome_labelResultCompare, LV_ALIGN_CENTER);
lv_label_set_text(ui_pageHome_labelResultCompare, "Low");
lv_obj_set_style_text_font(ui_pageHome_labelResultCompare, &ui_font_MiSansM, LV_PART_MAIN | LV_STATE_DEFAULT);
@ -1102,7 +1108,7 @@ void ui_pageHome_screen_init(void)
lv_obj_set_width(ui_pageHome_buttonStartTest, 266);
lv_obj_set_height(ui_pageHome_buttonStartTest, 61);
lv_obj_set_x(ui_pageHome_buttonStartTest, 3);
lv_obj_set_y(ui_pageHome_buttonStartTest, 170);
lv_obj_set_y(ui_pageHome_buttonStartTest, 176);
lv_obj_set_align(ui_pageHome_buttonStartTest, LV_ALIGN_CENTER);
lv_obj_set_style_bg_color(ui_pageHome_buttonStartTest, lv_color_hex(0x4A58DD), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(ui_pageHome_buttonStartTest, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
@ -1116,6 +1122,30 @@ void ui_pageHome_screen_init(void)
lv_label_set_text(ui_pageHome_labelStartTest, "开始测试");
lv_obj_set_style_text_font(ui_pageHome_labelStartTest, &ui_font_homePanelLabel, LV_PART_MAIN | LV_STATE_DEFAULT);
ui_pageHome_barNomTest = lv_bar_create(ui_pageHome_panelLeft);
lv_obj_set_width(ui_pageHome_barNomTest, 150);
lv_obj_set_height(ui_pageHome_barNomTest, 10);
lv_obj_set_x(ui_pageHome_barNomTest, -3);
lv_obj_set_y(ui_pageHome_barNomTest, 86);
lv_obj_set_align(ui_pageHome_barNomTest, LV_ALIGN_CENTER);
ui_pageHome_panelNomTest = lv_obj_create(ui_pageHome_panelLeft);
lv_obj_set_width(ui_pageHome_panelNomTest, 25);
lv_obj_set_height(ui_pageHome_panelNomTest, 25);
lv_obj_set_x(ui_pageHome_panelNomTest, 101);
lv_obj_set_y(ui_pageHome_panelNomTest, 86);
lv_obj_set_align(ui_pageHome_panelNomTest, LV_ALIGN_CENTER);
lv_obj_clear_flag(ui_pageHome_panelNomTest, LV_OBJ_FLAG_SCROLLABLE); /// Flags
ui_pageHome_Label8 = lv_label_create(ui_pageHome_panelLeft);
lv_obj_set_width(ui_pageHome_Label8, LV_SIZE_CONTENT); /// 1
lv_obj_set_height(ui_pageHome_Label8, LV_SIZE_CONTENT); /// 1
lv_obj_set_x(ui_pageHome_Label8, -113);
lv_obj_set_y(ui_pageHome_Label8, 86);
lv_obj_set_align(ui_pageHome_Label8, LV_ALIGN_CENTER);
lv_label_set_text(ui_pageHome_Label8, "进度:");
lv_obj_set_style_text_font(ui_pageHome_Label8, &ui_font_MiSansN14, LV_PART_MAIN | LV_STATE_DEFAULT);
ui_pageHome_switchWifiShow = lv_switch_create(ui_pageHome);
lv_obj_set_width(ui_pageHome_switchWifiShow, 50);
lv_obj_set_height(ui_pageHome_switchWifiShow, 23);

View File

@ -138,6 +138,7 @@ lv_obj_t * ui_pageHome_labelAdd;
lv_obj_t * ui_pageHome_labelstr6;
void ui_event_pageHome_spinboxStage(lv_event_t * e);
lv_obj_t * ui_pageHome_spinboxStage;
lv_obj_t * ui_pageHome_Panel8;
lv_obj_t * ui_pageHome_labelstr1;
lv_obj_t * ui_pageHome_labelstr2;
lv_obj_t * ui_pageHome_panelTestResult;
@ -149,6 +150,9 @@ lv_obj_t * ui_pageHome_labelResultCompare;
void ui_event_pageHome_buttonStartTest(lv_event_t * e);
lv_obj_t * ui_pageHome_buttonStartTest;
lv_obj_t * ui_pageHome_labelStartTest;
lv_obj_t * ui_pageHome_barNomTest;
lv_obj_t * ui_pageHome_panelNomTest;
lv_obj_t * ui_pageHome_Label8;
lv_obj_t * ui_pageHome_switchWifiShow;
lv_obj_t * ui_pageHome_labelWifi;
// CUSTOM VARIABLES

View File

@ -148,6 +148,7 @@ extern lv_obj_t * ui_pageHome_labelAdd;
extern lv_obj_t * ui_pageHome_labelstr6;
void ui_event_pageHome_spinboxStage(lv_event_t * e);
extern lv_obj_t * ui_pageHome_spinboxStage;
extern lv_obj_t * ui_pageHome_Panel8;
extern lv_obj_t * ui_pageHome_labelstr1;
extern lv_obj_t * ui_pageHome_labelstr2;
extern lv_obj_t * ui_pageHome_panelTestResult;
@ -159,6 +160,9 @@ extern lv_obj_t * ui_pageHome_labelResultCompare;
void ui_event_pageHome_buttonStartTest(lv_event_t * e);
extern lv_obj_t * ui_pageHome_buttonStartTest;
extern lv_obj_t * ui_pageHome_labelStartTest;
extern lv_obj_t * ui_pageHome_barNomTest;
extern lv_obj_t * ui_pageHome_panelNomTest;
extern lv_obj_t * ui_pageHome_Label8;
extern lv_obj_t * ui_pageHome_switchWifiShow;
extern lv_obj_t * ui_pageHome_labelWifi;
// CUSTOM VARIABLES

View File

@ -18,11 +18,13 @@
/* 创建用于表征当前是否进行BS测试的全局变量 */
bool is_bs_test_ing = false;
bool is_nom_test_ing = false;
/* 创建任务控制句柄 */
TaskHandle_t bs_test_task_handle;
TaskHandle_t nom_test_task_handle;
/* 声明需要调用的静态函数 */
static void comulate_time_set(void);
void comulate_time_set(void);
/* 更新当前标准体积数据 */
static void standard_volume_refresh(void);
@ -126,7 +128,7 @@ void on_spinboxRate_valueChanged(lv_event_t * e)
*
*
*/
static void comulate_time_set(void)
void comulate_time_set(void)
{
/* 获取当前呼吸频率 */
FluxMachineData.breathRate = lv_spinbox_get_value(ui_pageHome_spinboxRate);
@ -362,9 +364,36 @@ static void standard_volume_refresh(void)
*/
void on_buttonStartTest_clicked(lv_event_t * e)
{
/* 判断是否正在测试 */
if(is_nom_test_ing)
{
/* 如果正在测试,按下后取消测试 */
vTaskDelete(nom_test_task_handle);
/* 挂起LED闪烁 */
NOM_STATE_LED_TASK_SUSPEND;
/* 等待开始测试 */
is_nom_test_ing = false;
/* 清空已完成的测试结果 */
NOM_ALL_RESULT_CLEAR;
/* 清空进度条 */
lv_bar_set_value(ui_pageHome_barNomTest,0,LV_ANIM_ON);
lv_label_set_text(ui_pageHome_labelStartTest,"Start Test NOM");
}else{
/* 如果没有测试,按下后开始测试 */
/* 创建NOM测试任务 */
xTaskCreate(nom_test_task, "nom_test_task", 1024*4, NULL, 5, &nom_test_task_handle);
is_nom_test_ing = true;
lv_label_set_text(ui_pageHome_labelStartTest,"Cancel Test NOM");
}
#if 0
/* 开始测试前 下发积分时间,确保测试时间正确 */
comulate_time_set();
uint8_t bytes[4];
float time = (float)lv_spinbox_get_value(ui_pageFluxRead_spinboxTime);
memcpy(bytes, &time, 4);
@ -406,6 +435,10 @@ void on_buttonStartTest_clicked(lv_event_t * e)
/* 开始计时 */
lv_timer_enable(comulateResultReadTimer);
#endif
}
/**
@ -434,36 +467,6 @@ static void comulate_result_read(lv_timer_t * timer)
lv_label_set_text(ui_pageHome_labelStartTest,"Test Complete!");
}
/**
* @brief
*
*
*
*
* @param[in] timer not used
*/
static void bs_test_timer_func(lv_timer_t * timer)
{
ESP_LOGI("bs_test_timer_func","bs_test_timer_func");
/* 显示测试成功 */
lv_label_set_text(ui_pageHome_labelBSInfo,test_info[3]);
vTaskDelay(4000/portTICK_PERIOD_MS);
lv_label_set_text(ui_pageHome_labelBSInfo,test_info[4]);
vTaskDelay(4000/portTICK_PERIOD_MS);
lv_label_set_text(ui_pageHome_labelBSInfo,test_info[5]);
vTaskDelay(4000/portTICK_PERIOD_MS);
lv_label_set_text(ui_pageHome_labelBSInfo,test_info[1]);
vTaskDelay(4000/portTICK_PERIOD_MS);
lv_label_set_text(ui_pageHome_labelBSInfo,test_info[2]);
ESP_LOGI("bs_test_timer_func","bs_test_timer_func end");
}
/**
* @brief BS界面 BS测试
*
@ -506,8 +509,6 @@ void on_buttonStartTestBS_clicked(lv_event_t * e)
/* 屏幕中显示下发成功 */
lv_label_set_text(ui_pageHome_labelBSInfo,test_info[0]);
/* 屏幕中显示下发成功 */
lv_label_set_text(ui_pageHome_labelBSInfo,test_info[1]);

View File

@ -106,6 +106,10 @@ extern "C" void app_main(void)
xTaskCreate(bs_test_led_task, "bs_test_led_task", 4 * 1024, NULL, 2, &bs_stateLED_task_handle);
vTaskSuspend(bs_stateLED_task_handle);
/* 创建NOM测试LED闪烁任务同时挂起 */
xTaskCreate(nom_test_led_task, "nom_test_led_task", 4 * 1024, NULL, 2, &nom_stateLED_task_handle);
vTaskSuspend(nom_stateLED_task_handle);
#if 0/*暂时不支持呼吸模拟器*/
/*创建UART2响应任务*/
xTaskCreate(uart2_echoTask, "uart2_echo_task", ECHO_TASK_STACK_SIZE, NULL, 10, NULL);