From 3554991a6dcd43e54fcbfabe8c1486aa5d3e1526 Mon Sep 17 00:00:00 2001 From: sc <2401809606@qq.com> Date: Thu, 5 Mar 2026 22:39:06 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=B9=95=E5=B9=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .settings/projcfg.ini | 2 +- .../lvgl/guider/generated/setup_scr_screen.c | 2 +- applications/lvgl/ui_data_csv.c | 15 ++-- applications/lvgl/ui_data_labels.c | 9 +- applications/lvgl/ui_data_labels.h | 4 +- applications/lvgl/ui_data_labels_step.c | 84 +++++++++++-------- 6 files changed, 69 insertions(+), 47 deletions(-) diff --git a/.settings/projcfg.ini b/.settings/projcfg.ini index d6f2c10..a6cdabb 100644 --- a/.settings/projcfg.ini +++ b/.settings/projcfg.ini @@ -1,5 +1,5 @@ #RT-Thread Studio Project Configuration -#Wed Feb 11 13:52:22 CST 2026 +#Wed Mar 04 23:28:35 CST 2026 project_type=rtt chip_name=STM32H743IITx cpu_name=None diff --git a/applications/lvgl/guider/generated/setup_scr_screen.c b/applications/lvgl/guider/generated/setup_scr_screen.c index 8e428d4..2c3f849 100644 --- a/applications/lvgl/guider/generated/setup_scr_screen.c +++ b/applications/lvgl/guider/generated/setup_scr_screen.c @@ -7480,7 +7480,7 @@ void setup_scr_screen(lv_ui *ui) //Write codes screen_stepinf_s2 ui->screen_stepinf_s2 = lv_dropdown_create(ui->screen_stepinf); - lv_dropdown_set_options(ui->screen_stepinf_s2, "降温水洗017\n加压050\n减压051\n备药064\n呼叫输送066\n快速加酸090\nph温度控制091\nph检测093\nph控制094\n"); + lv_dropdown_set_options(ui->screen_stepinf_s2, "降温水洗017降温水洗017\n加压050\n减压051\n备药064\n呼叫输送066\n快速加酸090\nph温度控制091\nph检测093\nph控制094\n"); lv_obj_set_pos(ui->screen_stepinf_s2, 105, 111); lv_obj_set_size(ui->screen_stepinf_s2, 180, 45); diff --git a/applications/lvgl/ui_data_csv.c b/applications/lvgl/ui_data_csv.c index 7e98283..8e5401e 100644 --- a/applications/lvgl/ui_data_csv.c +++ b/applications/lvgl/ui_data_csv.c @@ -172,6 +172,7 @@ int parse_csv_to_table(lv_obj_t *container, const char *csv_data,int flags) { } user = (UserData *)rt_memheap_alloc(&sdram_heap, sizeof(UserData)); + memset(&user->data, 0, sizeof(user->data)); // 解析 CSV if (parse_csv_string(csv_data, user) != 0) { @@ -212,6 +213,8 @@ int parse_csv_to_inf(lv_obj_t *container, const char *csv_data ,int W_data,int H } user = (UserData *)rt_memheap_alloc(&sdram_heap, sizeof(UserData)); + memset(&user->data, 0, sizeof(user->data)); + int text_row = 0; // 解析 CSV @@ -251,7 +254,7 @@ int run_csv_to_table(const char *csv_data) { } user = (UserData *)rt_memheap_alloc(&sdram_heap, sizeof(UserData)); - + memset(&user->data, 0, sizeof(user->data)); // 解析 CSV if (parse_csv_string(csv_data, user) != 0) { return -1; @@ -324,6 +327,7 @@ int run_csv_to_set(const char *csv_data) { return -1; } user = (UserData *)rt_memheap_alloc(&sdram_heap, sizeof(UserData)); + memset(&user->data, 0, sizeof(user->data)); // 解析 CSV if (parse_csv_string(csv_data, user) != 0) { @@ -356,6 +360,7 @@ IO_STEP_DATA step_csv_to_table(const char *csv_data) { } user = (UserData *)rt_memheap_alloc(&sdram_heap, sizeof(UserData)); + memset(&user->data, 0, sizeof(user->data)); // 解析 CSV if (parse_csv_string(csv_data, user) != 0) { @@ -364,9 +369,9 @@ IO_STEP_DATA step_csv_to_table(const char *csv_data) { //数据组信息 temp.RUN = 0; rt_snprintf(temp.Dyelot ,1,csv_get_cell(user, 1, 0)); - rt_snprintf(temp.StepID ,1,csv_get_cell(user, 1, 1)); - rt_snprintf(temp.StepName ,1,csv_get_cell(user, 1, 2)); - rt_snprintf(temp.ParameterName ,1,csv_get_cell(user, 1, 3)); + rt_snprintf(temp.StepID ,3,csv_get_cell(user, 1, 1)); + rt_snprintf(temp.StepID_S1 ,3,csv_get_cell(user, 1, 2)); + rt_snprintf(temp.StepID_S2 ,3,csv_get_cell(user, 1, 3)); temp.Parameter1 = atof(csv_get_cell(user, 1, 4)); temp.Parameter2 = atof(csv_get_cell(user, 1, 5)); temp.Parameter3 = atof(csv_get_cell(user, 1, 6)); @@ -382,8 +387,6 @@ IO_STEP_DATA step_csv_to_table(const char *csv_data) { temp.Parameter3_S2 = atof(csv_get_cell(user, 1, 16)); temp.Parameter4_S2 = atof(csv_get_cell(user, 1, 17)); temp.Parameter5_S2 = atof(csv_get_cell(user, 1, 18)); - rt_snprintf(temp.StepID_S1, 3,csv_get_cell(user, 1, 19)); - rt_snprintf(temp.StepID_S2, 3,csv_get_cell(user, 1, 20)); // 释放内存 rt_memheap_free(user); diff --git a/applications/lvgl/ui_data_labels.c b/applications/lvgl/ui_data_labels.c index fe83ad2..5277743 100644 --- a/applications/lvgl/ui_data_labels.c +++ b/applications/lvgl/ui_data_labels.c @@ -500,18 +500,21 @@ char UI_pname_Program[32]={0}; int8_t UI_pname_Program_row=0; void UI_pname_step_inf(char* str_data,int row) { - if(row==0) + if(row!=0) { // 查询数据 - rt_snprintf(sqlSELECT, sizeof(sqlSELECT),"%s Program = '%s' AND Step = %d LIMIT 1;",select_Programstep_R,str_data); + rt_snprintf(sqlSELECT, sizeof(sqlSELECT),"%s Program = '%s' AND Step = %d LIMIT 1;",select_Programstep_R,str_data,row); db_send_select(DB_CMD_SELECT, sqlSELECT, 500,select_data_ui); UI_pname_step_inf_temp = step_csv_to_table(select_data_ui); rt_snprintf(UI_pname_step_inf_temp.Program, sizeof(UI_pname_step_inf_temp.Program),str_data); UI_pname_step_inf_temp.Step = row; }else{ - UI_pname_step_inf_temp = step_csv_to_table(select_data_ui); + rt_snprintf(UI_pname_step_inf_temp.Program, sizeof(UI_pname_step_inf_temp.Program),str_data); UI_pname_step_inf_temp.Step = row; + rt_snprintf(UI_pname_step_inf_temp.StepID,sizeof(UI_pname_step_inf_temp.StepID),"000"); + rt_snprintf(UI_pname_step_inf_temp.StepID_S1,sizeof(UI_pname_step_inf_temp.StepID_S1),"000"); + rt_snprintf(UI_pname_step_inf_temp.StepID_S2,sizeof(UI_pname_step_inf_temp.StepID_S2),"000"); } STEP_DATA_set_ui(&UI_pname_step_inf_temp); diff --git a/applications/lvgl/ui_data_labels.h b/applications/lvgl/ui_data_labels.h index 121686c..b6f91f9 100644 --- a/applications/lvgl/ui_data_labels.h +++ b/applications/lvgl/ui_data_labels.h @@ -21,8 +21,8 @@ StartTime AS 预计开始,EndTime AS 预计完成,Time AS 预计用时,lock AS #define select_Workordersteps_R "SELECT Dyelot,StepID,StepName,ParameterName,P1,P2,P3,P4,P5,P6,P7,P8,P9,\ P1_S1,P2_S1,P3_S1,P4_S1,P5_S1,P1_S2,P2_S2,P3_S2,P4_S2,P5_S2,P1_S3,P2_S3,P3_S3,P4_S3,P5_S3,ReDye,\ StepID_S1,StepID_S2,StepID_S3 FROM WorkorderSteps WHERE " -#define select_Programstep_R "SELECT ProgramID,StepID,StepName,ParameterName,P1,P2,P3,P4,P5,P1_S1,P2_S1,\ -P3_S1,P4_S1,P5_S1,P1_S2,P2_S2,P3_S2,P4_S2,P5_S2,StepID_S1,StepID_S2 FROM ProgramSteps WHERE" +#define select_Programstep_R "SELECT ProgramID,StepID,StepID_S1,StepID_S2,P1,P2,P3,P4,P5,P1_S1,P2_S1,\ +P3_S1,P4_S1,P5_S1,P1_S2,P2_S2,P3_S2,P4_S2,P5_S2 FROM ProgramSteps WHERE" #define select_ProgramStepsinf_DATA "SELECT Program AS 工艺 ,Step AS 步号 ,StepName AS 步骤工艺 , ParameterName AS 细节,\ P1 AS 参数1 ,P2 AS 参数2 ,P3 AS 参数3 ,P4 AS 参数4 ,P5 AS 参数5 ,StepName_S1 AS 副功能1 ,P1_S1 AS 参数1_1 ,P2_S1 AS 参数1_2,\ diff --git a/applications/lvgl/ui_data_labels_step.c b/applications/lvgl/ui_data_labels_step.c index be2f41b..9c6db9d 100644 --- a/applications/lvgl/ui_data_labels_step.c +++ b/applications/lvgl/ui_data_labels_step.c @@ -26,41 +26,57 @@ extern struct rt_memheap sram_SRAM1,sdram_heap; -static const char* get_step_name(char * step_id) +static const int get_step_name(char * step_id) { int id_num = atoi(step_id); switch(id_num) { // --- 基础控制 --- - case 1: return "温度控制001"; // 001 - case 7: return "水位进水007"; // 007 (AddWater + WaterLevel) - case 8: return "流量进水008"; // 008 (AddWater + Flowmeter) - case 13: return "水位水洗013"; // 013 (Washing + WaterLevel) - case 15: return "溢流水洗015"; // 015 (Washing + Overflow) - case 20: return "排水020"; // 020 - case 22: return "主泵排水022"; // 022 - case 31: return "运转031"; // 031 - case 35: return "入布035"; // 035 - case 36: return "出布036"; // 036 - case 39: return "呼叫操作员039"; // 039 - case 40: return "取样040"; // 040 - case 41: return "程序结束041"; // 041 - case 49: return "等待049"; // 049 - case 50: return "加压050"; // 050 - case 51: return "减压051"; // 051 - case 54: return "泵风机速度054"; // 054 (Pump + Blower) - case 55: return "泵启动055"; // 055 - case 56: return "泵停止056"; // 056 - case 64: return "备药064"; // 064 - case 65: return "加药065"; // 065 - case 66: return "呼叫输送066"; // 066 - case 67: return "呼叫准备067"; // 067 - case 90: return "快速加酸090"; // 090 - case 93: return "ph检测093"; // 093 - case 94: return "ph控制094"; // 094 - default: return ""; + case 1: return 0;//"温度控制001"; // 001 + case 7: return 1;//"水位进水007"; // 007 (AddWater + WaterLevel) + case 8: return 2;//"流量进水008"; // 008 (AddWater + Flowmeter) + case 13: return 3;//"水位水洗013"; // 013 (Washing + WaterLevel) + case 15: return 4;//"溢流水洗015"; // 015 (Washing + Overflow) + case 20: return 5;//"排水020"; // 020 + case 22: return 6;//"主泵排水022"; // 022 + case 31: return 7;//"运转031"; // 031 + case 35: return 8;//"入布035"; // 035 + case 36: return 9;//"出布036"; // 036 + case 39: return 10;//"呼叫操作员039"; // 039 + case 40: return 11;//"取样040"; // 040 + case 41: return 12;//"程序结束041"; // 041 + case 49: return 13;//"等待049"; // 049 + case 50: return 14;//"加压050"; // 050 + case 51: return 15;//"减压051"; // 051 + case 54: return 16;//"泵风机速度054"; // 054 (Pump + Blower) + case 55: return 17;//"泵启动055"; // 055 + case 56: return 18;//"泵停止056"; // 056 + case 64: return 19;//"备药064"; // 064 + case 65: return 20;//"加药065"; // 065 + case 66: return 21;//"呼叫输送066"; // 066 + case 67: return 22;//"呼叫准备067"; // 067 + case 90: return 23;//"快速加酸090"; // 090 + case 93: return 24;//"ph检测093"; // 093 + case 94: return 25;//"ph控制094"; // 094 + default: return 26; + } +} +static const int get_step_namer(char * step_id) +{ + int id_num = atoi(step_id); + switch(id_num) { + // --- 基础控制 --- + case 1: return 0;//"降温水洗017"; // 001 + case 50: return 1;//"加压050"; // 050 + case 51: return 2;//"减压051"; // 051 + case 64: return 3;//"备药064"; // 064 + case 66: return 4;//"呼叫输送066"; // 066 + case 90: return 5;//"快速加酸090"; // 090 + case 91: return 6;//"温控加酸091"; // 090 + case 93: return 7;//"ph检测093"; // 093 + case 94: return 8;//"ph控制094"; // 094 + default: return 9; } } - /** * 数据信息显示 **/ @@ -69,12 +85,12 @@ static const char* get_step_name(char * step_id) void STEP_DATA_set_ui(IO_STEP_DATA* STEPDATA_inf) { - char str_str[32]; - lv_snprintf(str_str, sizeof(str_str), "%d", STEPDATA_inf->Step); + char str_str[4]; + lv_snprintf(str_str, sizeof(str_str), "%03d", STEPDATA_inf->Step); lv_label_set_text(guider_ui.screen_stepinf_step,(const char *)str_str); lv_label_set_text(guider_ui.screen_stepinf_name,(const char *)STEPDATA_inf->Program); - lv_label_set_text(guider_ui.screen_stepinf_s1b,get_step_name(STEPDATA_inf->StepID)); - lv_label_set_text(guider_ui.screen_stepinf_s2b,get_step_name(STEPDATA_inf->StepID_S1)); - lv_label_set_text(guider_ui.screen_stepinf_s3b,get_step_name(STEPDATA_inf->StepID_S2)); + lv_dropdown_set_selected(guider_ui.screen_stepinf_s1,get_step_name(STEPDATA_inf->StepID)); + lv_dropdown_set_selected(guider_ui.screen_stepinf_s2,get_step_namer(STEPDATA_inf->StepID_S1)); + lv_dropdown_set_selected(guider_ui.screen_stepinf_s3,get_step_namer(STEPDATA_inf->StepID_S2)); }