Version 5

Dependencies:   BMP280 TextLCD BME280

LCD.hpp

Committer:
O_Thom
Date:
2018-11-29
Revision:
5:f87129ac8bf3
Child:
6:b7f6e0c0f646

File content as of revision 5:f87129ac8bf3:

 #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