brewco/devices.c

changeset 452
edc86e2d2eaa
parent 451
2247970de278
child 458
43a8ecb53637
--- a/brewco/devices.c	Thu Dec 10 15:58:01 2015 +0100
+++ b/brewco/devices.c	Thu Dec 10 17:31:45 2015 +0100
@@ -135,6 +135,90 @@
 
 
 
+void hlt_heater(int value)
+{
+#ifdef HAVE_WIRINGPI_H
+    piLock(LOCK_LCD);
+    lcdPosition(lcdHandle, 0, 1);
+#endif
+    slcdPosition(slcdHandle, 0, 1);
+    if (value) {
+	leds |= SLED_HLTH;
+#ifdef HAVE_WIRINGPI_H
+	lcdPutchar(lcdHandle, 5);
+#endif
+	slcdPutchar(slcdHandle, 5);
+    } else {
+	leds &= ~SLED_HLTH;
+#ifdef HAVE_WIRINGPI_H
+	lcdPutchar(lcdHandle, 6);
+#endif
+	slcdPutchar(slcdHandle, 6);
+    }
+#ifdef HAVE_WIRINGPI_H
+    piUnlock(LOCK_LCD);
+#endif
+    slcdLEDs(slcdHandle);
+}
+
+
+
+void mlt_heater(int value)
+{
+#ifdef HAVE_WIRINGPI_H
+    piLock(LOCK_LCD);
+    lcdPosition(lcdHandle, 18, 1);
+#endif
+    slcdPosition(slcdHandle, 18, 1);
+    if (value) {
+        leds |= SLED_MLTH;
+#ifdef HAVE_WIRINGPI_H
+        lcdPutchar(lcdHandle, 5);
+#endif
+        slcdPutchar(slcdHandle, 5);
+    } else {
+        leds &= ~SLED_MLTH;
+#ifdef HAVE_WIRINGPI_H
+        lcdPutchar(lcdHandle, 6);
+#endif
+        slcdPutchar(slcdHandle, 6);
+    }
+#ifdef HAVE_WIRINGPI_H
+    piUnlock(LOCK_LCD);
+#endif
+    slcdLEDs(slcdHandle);
+}
+
+
+
+void mlt_pump(int value)
+{
+#ifdef HAVE_WIRINGPI_H
+    piLock(LOCK_LCD);
+    lcdPosition(lcdHandle, 19, 1);
+#endif
+    slcdPosition(slcdHandle, 19, 1);
+    if (value) {
+        leds |= SLED_MLTP;
+#ifdef HAVE_WIRINGPI_H
+        lcdPutchar(lcdHandle, 3);
+#endif
+        slcdPutchar(slcdHandle, 3);
+    } else {
+        leds &= ~SLED_MLTP;
+#ifdef HAVE_WIRINGPI_H
+        lcdPutchar(lcdHandle, 4);
+#endif
+        slcdPutchar(slcdHandle, 4);
+    }
+#ifdef HAVE_WIRINGPI_H
+    piUnlock(LOCK_LCD);
+#endif
+    slcdLEDs(slcdHandle);
+}
+
+
+
 int device_out(char *uuid, int value)
 {
     devices_list	*device;
@@ -221,26 +305,14 @@
 			device->value = value;
 			if (strcmp((char *)"SimHLTheater", device->address) == 0) {
 			    SIM_hlt_value = value;
-			    if (value)
-				leds |= SLED_HLTH;
-			    else
-				leds &= ~SLED_HLTH;
-			    slcdLEDs(slcdHandle);
+			    hlt_heater(value);
 			}
 			if (strcmp((char *)"SimMLTheater", device->address) == 0) {
 			    SIM_mlt_value = value;
-			    if (value)
-				leds |= SLED_MLTH;
-			    else
-				leds &= ~SLED_MLTH;
-			    slcdLEDs(slcdHandle);
+			    mlt_heater(value);
 			}
 			if (strcmp((char *)"SimMLTpump", device->address) == 0) {
-			    if (value)
-				leds |= SLED_MLTP;
-			    else
-				leds &= ~SLED_MLTP;
-			    slcdLEDs(slcdHandle);
+			    mlt_pump(value);
 			}
 		    }
 		}

mercurial