Alix & Sam's combined versions
Dependencies: BMP280 ELEC350-Practicals-FZ429 TextLCD BME280 ntp-client
Diff: LCD.hpp
- Revision:
- 5:f87129ac8bf3
- Child:
- 6:b7f6e0c0f646
diff -r 740cba3f2716 -r f87129ac8bf3 LCD.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LCD.hpp Thu Nov 29 16:08:28 2018 +0000 @@ -0,0 +1,52 @@ + #ifndef _LCD_ + #define _LCD_ + #include "mbed.h" + #include "message.hpp" + + class LCD_Data + { + private: //private variables can only be changed via functions in this function + float temp; //current temperature of sensor, updated every 15 seconds + float pressure; //current pressure of sensor, updated every 15 seconds + float fLDR; //current light level from LDR, updated every 15 seconds + int flip; + void update_temp(double temp) //use this function to update the current temperature value + { + temp = sensor.getTemperature(); + } + void update_pressure(double pressure) //use this function to update the current pressure value + { + pressure = sensor.getPressure(); + } + public: + EventQueue LCD_Queue; //create an event queue for main + + LCD_Data(){ //constructor, initializes the FLIP variable for use in toggling the bottom line of the LCD + flip = 1; + temp = sensor.getTemperature(); + pressure = sensor.getPressure(); + } + void update_sensor_info() //updates all current sensor information, this is called by a ticker every 5 seconds to read from the mailbox + { + update_temp(0); // Include message class passing of data + update_pressure(0); + } + void display_LCD() //updates the current LCD display with the new sensor information + { + lcd.cls(); //clear current LCD display + lcd.printf("%4.2fC", temp); //print temperature to the top line of LCD, 2dp celcius + switch(flip){ + case 1: + lcd.printf("\n%4.2f mbar", pressure); //print pressure to bottom line of LCD, 2dp mbar + break; + + default: + printf("Error in LCD flip function"); + break; + } + } + }; //end of class LCD_Data +// Define Objects for the LCD_Data Class +LCD_Data m_oDisplay; + + #endif \ No newline at end of file