aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main.c18
-rw-r--r--ui.c24
-rw-r--r--ui.h3
3 files changed, 45 insertions, 0 deletions
diff --git a/main.c b/main.c
index 893fe91..c014536 100644
--- a/main.c
+++ b/main.c
@@ -68,6 +68,7 @@ static void intercooler_deltap_row(mu_Context *ctx, UI *ui);
static void dup_del_row(mu_Context *ctx, UI *ui);
static void pressure_ratio_row(mu_Context *ctx, UI *ui);
static void comp_outlet_temperature_row(mu_Context *ctx, UI *ui);
+static void manifold_temperature_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);
static void vpad(mu_Context *ctx, int h);
@@ -153,6 +154,7 @@ main_window(mu_Context *ctx, UI *ui) {
pressure_ratio_row(ctx, ui);
comp_outlet_temperature_row(ctx, ui);
+ manifold_temperature_row(ctx, ui);
volume_flow_rate_row(ctx, ui);
mu_end_window(ctx);
@@ -361,6 +363,22 @@ comp_outlet_temperature_row(mu_Context *ctx, UI *ui) {
}
static void
+manifold_temperature_row(mu_Context *ctx, UI *ui) {
+ int i;
+
+ mu_layout_row(ctx, 0, NULL, 0);
+ mu_layout_width(ctx, LABEL_WIDTH);
+ mu_label(ctx, "Manifold T:");
+ mu_layout_width(ctx, UNIT_WIDTH);
+ if (w_select(ctx, &ui->manifold_temperature_unit) & MU_RES_CHANGE) {
+ compute_all(ui);
+ }
+ for (i = 0; i < ui->npoints; i++) {
+ w_number(ctx, ui->manifold_temperature[i]);
+ }
+}
+
+static void
volume_flow_rate_row(mu_Context *ctx, UI *ui) {
int i;
diff --git a/ui.c b/ui.c
index 87e118d..cf97462 100644
--- a/ui.c
+++ b/ui.c
@@ -62,9 +62,11 @@ static void init_intercooler_efficiency(UI *ui);
static void init_intercooler_deltap(UI *ui);
static void init_pressure_ratio(UI *ui);
static void init_comp_outlet_temperature(UI *ui);
+static void init_manifold_temperature(UI *ui);
static void init_volume_flow_rate(UI *ui);
static void compute_pressure_ratio(UI *ui, int idx);
static void compute_comp_outlet_temperature(UI *ui, int idx);
+static void compute_manifold_temperature(UI *ui, int idx);
static void compute_volume_flow_rate(UI *ui, int idx);
@@ -86,6 +88,7 @@ init_ui(UI *ui) {
init_pressure_ratio(ui);
init_comp_outlet_temperature(ui);
+ init_manifold_temperature(ui);
init_volume_flow_rate(ui);
compute(ui, 0);
@@ -205,6 +208,12 @@ init_comp_outlet_temperature(UI *ui) {
}
static void
+init_manifold_temperature(UI *ui) {
+ w_init_number(ui->manifold_temperature[0]);
+ w_init_select(&ui->manifold_temperature_unit, nelem(temperature_units), temperature_units);
+}
+
+static void
init_volume_flow_rate(UI *ui) {
w_init_select(&ui->volume_flow_rate_unit, nelem(volume_flow_rate_units), volume_flow_rate_units);
w_init_number(ui->volume_flow_rate[0]);
@@ -379,6 +388,7 @@ void
compute(UI *ui, int idx) {
compute_pressure_ratio(ui, idx);
compute_comp_outlet_temperature(ui, idx);
+ compute_manifold_temperature(ui, idx);
compute_volume_flow_rate(ui, idx);
}
@@ -414,6 +424,20 @@ compute_comp_outlet_temperature(UI *ui, int idx) {
}
static void
+compute_manifold_temperature(UI *ui, int idx) {
+ int unit_idx;
+ TemperatureReader convert;
+ double v;
+
+ unit_idx = ui->manifold_temperature_unit.idx;
+ assert(unit_idx >= 0 && (long unsigned int) unit_idx < nelem(temperature_units));
+
+ convert = temperature_readers[unit_idx];
+ v = convert(manifold_temperature(&ui->points[idx]));
+ w_set_number(ui->manifold_temperature[idx], v);
+}
+
+static void
compute_volume_flow_rate(UI *ui, int idx) {
int unit_idx;
VolumeFlowRateReader convert;
diff --git a/ui.h b/ui.h
index d30256c..5cbf6a3 100644
--- a/ui.h
+++ b/ui.h
@@ -32,6 +32,9 @@ typedef struct {
w_Number comp_outlet_temperature[MAX_POINTS];
w_Select comp_outlet_temperature_unit;
+ w_Number manifold_temperature[MAX_POINTS];
+ w_Select manifold_temperature_unit;
+
w_Select volume_flow_rate_unit;
w_Number volume_flow_rate[MAX_POINTS];
} UI;