diff -r 2247970de278 -r edc86e2d2eaa brewco/devices.c --- 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); } } }