brewco/setup.c

changeset 443
6b80a37fdf8d
parent 442
1193bd7d460f
child 445
3ec477cda546
--- a/brewco/setup.c	Sat Nov 28 21:00:29 2015 +0100
+++ b/brewco/setup.c	Wed Dec 02 17:16:41 2015 +0100
@@ -36,11 +36,166 @@
 
 
 
+int toggleYesNo(int value, char *text)
+{
+    int		key, new = value;
+    char	pmpt[81];
+
+    prompt(0, NULL);
+    prompt(132, NULL);
+
+    for (;;) {
+
+        snprintf(pmpt, Config.lcd_cols + 1, "%s: %s", text, new ? (char *)"Yes":(char *)"No ");
+	prompt(200, pmpt);
+	if (new) {
+	    prompt(404, NULL);
+	} else {
+	    prompt(402, NULL);
+	}
+
+	key = keywait();
+	if ((key == KEY_RETURN) || my_shutdown)
+	    return value;
+	if ((key == KEY_UP) && new)
+	    new = 0;
+	else if ((key == KEY_DOWN) && (new == 0))
+	    new = 1;
+	if (key == KEY_ENTER)
+	    return new;
+    }
+}
+
+
+
 void editUnit(units_list *unit)
 {
+    int		index = 1, key;
+    char	pmpt[81];
+
     if (debug)
     	fprintf(stdout, "Start edit brewsystem %d %s\n", unit->number, unit->uuid);
 
+    prompt(0, NULL);
+
+    for (;;) {
+
+	prompt(0, NULL);
+	prompt(131, NULL);
+
+	if (index == 1)
+	    prompt(402, NULL);
+	else if (index == 21)
+	    prompt(404, NULL);
+	else
+	    prompt(403, NULL);
+
+	switch (index) {				//   12345678901234567890
+	    case 1:	snprintf(pmpt, Config.lcd_cols + 1, "Unit name:");
+			prompt(200, pmpt);
+			snprintf(pmpt, Config.lcd_cols + 1, "%s", unit->name);
+			prompt(300, pmpt);
+			break;
+	    case 2:	snprintf(pmpt, Config.lcd_cols + 1, "  HLT sensor setup");
+			prompt(200, pmpt);
+			break;
+	    case 3:	snprintf(pmpt, Config.lcd_cols + 1, "  HLT heater setup");
+			prompt(200, pmpt);
+			break;
+	    case 4:	snprintf(pmpt, Config.lcd_cols + 1, "  MLT sensor setup");
+			prompt(200, pmpt);
+			break;
+	    case 5:	snprintf(pmpt, Config.lcd_cols + 1, "  MLT heater setup");
+			prompt(200, pmpt);
+			break;
+	    case 6:	snprintf(pmpt, Config.lcd_cols + 1, "   MLT pump setup");
+			prompt(200, pmpt);
+			break;
+	    case 7:	snprintf(pmpt, Config.lcd_cols + 1, "MLT heat b4 HLT: %s", unit->hlt_heater_mltfirst ? (char *)"Yes":(char *)"No");
+			prompt(200, pmpt);
+			break;
+	    case 8:	snprintf(pmpt, Config.lcd_cols + 1, "Pump cycle: %2d mins", unit->pump_cycle);
+			prompt(200, pmpt);
+			break;
+	    case 9:	snprintf(pmpt, Config.lcd_cols + 1, "Pump rest : %2d mins", unit->pump_rest);
+			prompt(200, pmpt);
+			break;
+	    case 10:	snprintf(pmpt, Config.lcd_cols + 1, " Pump pre-mash: %s", unit->pump_premash ? (char *)"Yes":(char *)"No");
+			prompt(200, pmpt);
+			break;
+	    case 11:	snprintf(pmpt, Config.lcd_cols + 1, " Pump on-mash: %s", unit->pump_onmash ? (char *)"Yes":(char *)"No");
+			prompt(200, pmpt);
+			break;
+	    case 12:	snprintf(pmpt, Config.lcd_cols + 1, " Pump mashout: %s", unit->pump_mashout ? (char *)"Yes":(char *)"No");
+			prompt(200, pmpt);
+			break;
+	    case 13:	snprintf(pmpt, Config.lcd_cols + 1, " Pump on-boil: %s", unit->pump_onboil ? (char *)"Yes":(char *)"No");
+			prompt(200, pmpt);
+			break;
+	    case 14:	snprintf(pmpt, Config.lcd_cols + 1, "  Pump stop: %3d\337C", unit->pump_stop);
+			prompt(200, pmpt);
+			break;
+	    case 15:	snprintf(pmpt, Config.lcd_cols + 1, "    Skip Add: %s", unit->skip_add ? (char *)"Yes":(char *)"No");
+			prompt(200, pmpt);
+			break;
+	    case 16:	snprintf(pmpt, Config.lcd_cols + 1, "  Skip Remove: %s", unit->skip_remove ? (char *)"Yes":(char *)"No");
+			prompt(200, pmpt);
+			break;
+	    case 17:	snprintf(pmpt, Config.lcd_cols + 1, "  Skip Iodine: %s", unit->skip_iodine ? (char *)"Yes":(char *)"No");
+			prompt(200, pmpt);
+			break;
+	    case 18:	snprintf(pmpt, Config.lcd_cols + 1, "Iodine time: %3d min", unit->iodine_time);
+			prompt(200, pmpt);
+			break;
+	    case 19:	snprintf(pmpt, Config.lcd_cols + 1, "   Whirlpool: %s", unit->whirlpool ? (char *)"Yes":(char *)"No");
+			prompt(200, pmpt);
+			break;
+	    case 20:	snprintf(pmpt, Config.lcd_cols + 1, "   HLT PID setup");
+			prompt(200, pmpt);
+			break;
+	    case 21:	snprintf(pmpt, Config.lcd_cols + 1, "   MLT PID setup");
+			prompt(200, pmpt);
+			break;
+	}
+
+	key = keywait();
+	if ((key == KEY_RETURN) || my_shutdown)
+	    return;
+
+	if ((key == KEY_UP) && (index > 1))
+	    index--;
+	if ((key == KEY_DOWN) && (index < 21))
+	    index++;
+
+	if (key == KEY_ENTER) {
+	    switch(index) {
+		case 7:	unit->hlt_heater_mltfirst = toggleYesNo(unit->hlt_heater_mltfirst , (char *)"MLT heat b4 HLT");
+			break;
+	    }
+	}
+    // name
+    // hlt_sensor  picklist
+    // hlt_heater  picklist + value range
+    // mlt_sensor  picklist
+    // mlt_heater  picklist + value range
+    // mlt_pump    picklist + value range
+    // hlt_heater_mltfirst  0/1
+    // pump_cycle 5..15
+    // pump_rest  1..5
+    // pump_premash 0/1
+    // pump_onmash  0/1
+    // pump_mashout 0/1
+    // pump_onboil  0/1
+    // pump_stop   80..110
+    // skip_add     0/1
+    // skip_remove  0/1
+    // skip_iodine  0/1
+    // iodine_time  0..90
+    // whirlpool    0/1
+    // PID_hlt
+    // PID_mlt
+    }
+
     if (debug)
 	fprintf(stdout, "End edit brewsystem %d %s\n", unit->number, unit->uuid);
 }
@@ -113,19 +268,19 @@
     for (;;) {
 	if (debug)
 	    fprintf(stdout, "setup() option=%d\n", option);
-	prompt(0);
-	prompt(102);
-	prompt(option);
+	prompt(0, NULL);
+	prompt(102, NULL);
+	prompt(option, NULL);
 	if (option == 202)
-	    prompt(402);
+	    prompt(402, NULL);
 #ifdef USE_SIMULATOR
 	else if (option == 205)
 #else
 	else if (option == 204)
 #endif
-	    prompt(404);
+	    prompt(404, NULL);
 	else
-	    prompt(403);
+	    prompt(403, NULL);
 
 	key = keywait();
 
@@ -142,6 +297,22 @@
 	    option++;
 	}
 
+	if (key == KEY_ENTER) {
+	    switch(option) {
+		case 202:	// recipes
+				break;
+		case 203:	editUnit(Config.units);	/* If more units, via a selector */
+				break;
+		case 204:	// devices
+				break;
+#ifdef USE_SIMULATOR
+		case 205:	// simulator
+				break;
+#endif
+	    }
+	    if (my_shutdown)
+		return;
+	}
     }
 }
 

mercurial