From 331a6e4e536c329371ad23650876364d87fd9561 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sat, 1 Mar 2025 15:25:24 -0500 Subject: add compressor efficiency input --- engine.h | 1 + main.c | 19 +++++++++++++++++++ ui.c | 5 +++++ ui.h | 3 +++ 4 files changed, 28 insertions(+) diff --git a/engine.h b/engine.h index 43d5f4b..cb77a35 100644 --- a/engine.h +++ b/engine.h @@ -5,6 +5,7 @@ typedef struct { AngularSpeed rpm; Pressure map; Fraction ve; + Fraction comp_efficiency; } Engine; void init_engine(Engine *e); diff --git a/main.c b/main.c index b9319c5..aa5c161 100644 --- a/main.c +++ b/main.c @@ -62,6 +62,7 @@ static void ambient_pressure_row(mu_Context *ctx, UI *ui); static void rpm_row(mu_Context *ctx, UI *ui); static void map_row(mu_Context *ctx, UI *ui); static void ve_row(mu_Context *ctx, UI *ui); +static void comp_efficiency_row(mu_Context *ctx, UI *ui); static void dup_del_row(mu_Context *ctx, UI *ui); static void volume_flow_rate_row(mu_Context *ctx, UI *ui); static void hpad(mu_Context *ctx, int w); @@ -139,6 +140,7 @@ main_window(mu_Context *ctx, UI *ui) { rpm_row(ctx, ui); map_row(ctx, ui); ve_row(ctx, ui); + comp_efficiency_row(ctx, ui); dup_del_row(ctx, ui); vpad(ctx, 0); @@ -241,6 +243,23 @@ ve_row(mu_Context *ctx, UI *ui) { } } } +static void +comp_efficiency_row(mu_Context *ctx, UI *ui) { + int i; + + mu_layout_row(ctx, 0, NULL, 0); + mu_layout_width(ctx, LABEL_WIDTH); + mu_label(ctx, "Compressor efficiency:"); + mu_layout_width(ctx, UNIT_WIDTH); + mu_label(ctx, "(%)"); + mu_layout_width(ctx, FIELD_WIDTH); + for (i = 0; i < ui->npoints; i++) { + if (w_field(ctx, &ui->comp_efficiency[i])) { + set_comp_efficiency(ui, i); + set_volume_flow_rate(ui, i); + } + } +} static void dup_del_row(mu_Context *ctx, UI *ui) { diff --git a/ui.c b/ui.c index 0ef1dfb..d1b4bb2 100644 --- a/ui.c +++ b/ui.c @@ -188,6 +188,11 @@ set_ve(UI *ui, int idx) { ui->points[idx].ve = percent(ui->ve[idx].value); } +void +set_comp_efficiency(UI *ui, int idx) { + ui->points[idx].comp_efficiency = percent(ui->comp_efficiency[idx].value); +} + void set_volume_flow_rate(UI *ui, int idx) { int unit_idx; diff --git a/ui.h b/ui.h index e1cbfcf..db95f25 100644 --- a/ui.h +++ b/ui.h @@ -19,6 +19,8 @@ typedef struct { w_Field ve[MAX_POINTS]; + w_Field comp_efficiency[MAX_POINTS]; + Engine points[MAX_POINTS]; w_Select volume_flow_rate_unit; @@ -35,6 +37,7 @@ void set_ambient_pressure_unit(UI *ui); void set_map(UI *ui, int idx); void set_map_unit(UI *ui); void set_ve(UI *ui, int idx); +void set_comp_efficiency(UI *ui, int idx); void set_volume_flow_rate(UI *ui, int idx); void set_all_volume_flow_rate(UI *ui); void insert_point(UI *ui, int idx); -- cgit v1.2.3