fuck this

Dependencies:   BMP280

Committer:
Swaggie
Date:
Sun Jan 07 00:02:29 2018 +0000
Revision:
16:1b3488fb67f5
Parent:
15:e61297f9bae9
Child:
17:95b0b1ec0f90
Made good progress on LCD functions. Now constructs correctly.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Swaggie 14:1fb1354ac27c 1 #include "mbed.h"
Swaggie 14:1fb1354ac27c 2 #include "LCD.h"
Swaggie 14:1fb1354ac27c 3 #include "TextLCD.h"
Swaggie 15:e61297f9bae9 4 #include "rtos.h"
Swaggie 14:1fb1354ac27c 5
Swaggie 16:1b3488fb67f5 6 EnviromLCDDisplay::EnviromLCDDisplay(PinName rs, PinName e, PinName d4, PinName d5, PinName d6, PinName d7, PinName Button1Pin, PinName Button2) : TextLCD(rs, e, d4, d5, d7, d7), _DisplayScroll(), _LCDThread(), _Button2(Button2)
Swaggie 14:1fb1354ac27c 7 {
Swaggie 15:e61297f9bae9 8 //Initialise all variables
Swaggie 15:e61297f9bae9 9 _TState = MESSAGE;
Swaggie 15:e61297f9bae9 10 _SState = PRESTEMP;
Swaggie 15:e61297f9bae9 11 _temperature = 0.0;
Swaggie 15:e61297f9bae9 12 _pressure = 0.0;
Swaggie 15:e61297f9bae9 13 _ldr = 0.0;
Swaggie 15:e61297f9bae9 14 _message = "";
Swaggie 15:e61297f9bae9 15 //_DisplayScroll = DisplayScroll;
Swaggie 15:e61297f9bae9 16 //_LCDThread = LCDThread;
Swaggie 15:e61297f9bae9 17 _Button1Pin = Button1Pin;
Swaggie 15:e61297f9bae9 18 //_Button2 = Button2;
Swaggie 15:e61297f9bae9 19 _AutoQuit = true;
Swaggie 14:1fb1354ac27c 20 }
Swaggie 14:1fb1354ac27c 21
Swaggie 15:e61297f9bae9 22 bool EnviromLCDDisplay::POST(void)
Swaggie 14:1fb1354ac27c 23 {
Swaggie 16:1b3488fb67f5 24 printf("Push Button 1"); //Print to LCD
Swaggie 16:1b3488fb67f5 25 while (!_Button2) {} //Wait until button is pushed
Swaggie 16:1b3488fb67f5 26 return true; //The test has passed
Swaggie 14:1fb1354ac27c 27 }
Swaggie 14:1fb1354ac27c 28
Swaggie 15:e61297f9bae9 29 void EnviromLCDDisplay::Start(void)
Swaggie 14:1fb1354ac27c 30 {
Swaggie 15:e61297f9bae9 31 DispMessage("Starting", true); //Set the LCD to display message on start
Swaggie 16:1b3488fb67f5 32 _LCDThread.start(this, &EnviromLCDDisplay::LCDThreadFn); //Start the thread runnig
Swaggie 15:e61297f9bae9 33 }
Swaggie 15:e61297f9bae9 34
Swaggie 15:e61297f9bae9 35 void EnviromLCDDisplay::DispMessage(string message, bool returnToReadings)
Swaggie 15:e61297f9bae9 36 {
Swaggie 16:1b3488fb67f5 37 _message = message; //Set internal variable from input
Swaggie 16:1b3488fb67f5 38 _TState = MESSAGE; //Move State machine to message
Swaggie 16:1b3488fb67f5 39 _AutoQuit = returnToReadings; //Set internal variable from input
Swaggie 16:1b3488fb67f5 40 }
Swaggie 16:1b3488fb67f5 41
Swaggie 16:1b3488fb67f5 42 void EnviromLCDDisplay::LCDThreadFn(void)
Swaggie 16:1b3488fb67f5 43 {
Swaggie 16:1b3488fb67f5 44 while (1)
Swaggie 16:1b3488fb67f5 45 {
Swaggie 16:1b3488fb67f5 46 //Setup button 1 as Interrupt In
Swaggie 16:1b3488fb67f5 47 switch (_TState) {
Swaggie 16:1b3488fb67f5 48 case MESSAGE :
Swaggie 16:1b3488fb67f5 49 //display a message on the screen
Swaggie 16:1b3488fb67f5 50
Swaggie 16:1b3488fb67f5 51 cls(); //Clear the screen
Swaggie 16:1b3488fb67f5 52 printf("%s", _message); //Put the message on the screen
Swaggie 16:1b3488fb67f5 53 Thread::wait(3000); //Wait 3 secs before doing anything else
Swaggie 16:1b3488fb67f5 54 if (_AutoQuit && (_TState == MESSAGE)) //Therefore button 1 interrupt won't be overwritten
Swaggie 16:1b3488fb67f5 55 {
Swaggie 16:1b3488fb67f5 56 _TState = SCROLLREADINGS; //Return to showing data
Swaggie 16:1b3488fb67f5 57 _SState = PRESTEMP; //Go to screen 1
Swaggie 16:1b3488fb67f5 58 }
Swaggie 16:1b3488fb67f5 59 break;
Swaggie 16:1b3488fb67f5 60 case SCROLLREADINGS :
Swaggie 16:1b3488fb67f5 61 //Show enviromental readings
Swaggie 16:1b3488fb67f5 62 cls();
Swaggie 16:1b3488fb67f5 63 printf("Pres: xxxx.xmBar\n");
Swaggie 16:1b3488fb67f5 64 printf("Temp: xx.x C");
Swaggie 16:1b3488fb67f5 65 Thread::wait(2000); //Screen hold
Swaggie 16:1b3488fb67f5 66 cls();
Swaggie 16:1b3488fb67f5 67 printf("LDR: xx.x, Taken");
Swaggie 16:1b3488fb67f5 68 printf("HH:mm, DD/MM");
Swaggie 16:1b3488fb67f5 69 Thread::wait(2000);
Swaggie 16:1b3488fb67f5 70 break;
Swaggie 16:1b3488fb67f5 71 case ADJUSTTIME :
Swaggie 16:1b3488fb67f5 72 //Adjust time with userbuttons
Swaggie 16:1b3488fb67f5 73 //delete button 1 as interupt in.
Swaggie 16:1b3488fb67f5 74
Swaggie 16:1b3488fb67f5 75
Swaggie 16:1b3488fb67f5 76 //create button 1 as digital in.
Swaggie 16:1b3488fb67f5 77 break;
Swaggie 16:1b3488fb67f5 78 default :
Swaggie 16:1b3488fb67f5 79 //Error code
Swaggie 16:1b3488fb67f5 80 }
Swaggie 16:1b3488fb67f5 81 }
Swaggie 14:1fb1354ac27c 82 }