Program for the water play project for the course Software Testing Practical 2016 given at the VU University
Dependencies: mbed DRV88255 TextLCD Ping mbed-rtos
LCDController.cpp
- Committer:
- sbouber1
- Date:
- 2016-06-24
- Revision:
- 80:38e274c4dafa
- Parent:
- 78:a44ad011dd41
File content as of revision 80:38e274c4dafa:
#include "LCDController.h" #include "SensorAlarmController.h" static TextLCD lcd(p5, p6, p7, p8, p9, p10, TextLCD::LCD16x2); LCDController::LCDController() { printf("Initiate LCD Controller\n\r"); lcd.cls(); } void LCDController::splash() { lcd.cls(); lcd.printf("Welcome to\nSaltware"); wait(0.5); } void LCDController::updateScreen(float temp_value, float salt_value, PIDController *pidc) { lcd.cls(); char temp_buffer[16]; char salt_buffer[16]; if (temp_value > 100) { // Show Not Connected sprintf(temp_buffer, "T: NC"); SensorAlarmController::buzzOnce(); } else { sprintf(temp_buffer, "T: %.1fC", temp_value); } if (pidc->isHeating()) { // Indicate heating with an "*" near the temperature sprintf(temp_buffer, "%s *", temp_buffer); } if(salt_value < MIN_VALID_SALINITY) { // Show not connected sprintf(salt_buffer, "S: NC"); SensorAlarmController::buzzOnce(); } else { sprintf(salt_buffer, "S: %.3fPPT", salt_value); } // Indicate pumping with an "*" near the salinity if (pidc->isPumping()) { sprintf(salt_buffer, "%s *", salt_buffer); } lcd.printf("%s\n%s", temp_buffer, salt_buffer); } void LCDController::showPumping() { lcd.cls(); lcd.printf("Now pumping..."); } void LCDController::updateScreen(float volume) { lcd.cls(); if(-1.0f == volume) lcd.printf("Volume:\nNC"); else if(volume > VOLUME_MAX_CRIT) lcd.printf("Volume:\nOverflow"); else if(volume < VOLUME_MIN_CRIT) lcd.printf("Volume:\nUnderflow"); else lcd.printf("Volume:\nOK"); } void LCDController::showError(const char *msg) { lcd.cls(); lcd.printf("ERROR:\n%s", msg); }