Version 5

Dependencies:   BMP280 TextLCD BME280

main.cpp

Committer:
O_Thom
Date:
2018-11-29
Revision:
6:b7f6e0c0f646
Parent:
5:f87129ac8bf3
Child:
7:8664a45f5ce1

File content as of revision 6:b7f6e0c0f646:

#include "mbed.h"
#include "sample_hardware.hpp"
#include "Sampler.hpp"
#include "SerialComms.hpp"

void LCD_Thread(void);
void SAMP_Thread(void);
void SERIAL_Thread(void);

Thread tLCD, tSAMP, tSERIAL, tSD;

// Define member object
Sampler m_osample;
Serialcomms m_oserial;

int main()
{  
    tLCD.start(LCD_Thread);
    tSAMP.start(SAMP_Thread);
    tSERIAL.start(SERIAL_Thread);
    Thread::wait(osWaitForever);
}


void LCD_Thread()
{   
    while(1)
    {
        m_oDisplay.LCD_Queue.call_every(1000, &m_oDisplay, &LCD_Data::display_LCD); //displays the current sensor information onto the LCD screen every x miliseconds
        m_oDisplay.LCD_Queue.dispatch();  //dispatches the above tasks to the queue, then blocks main forever unless ' break_dispatch () ' is used 
        while(true) 
        {
            redLED = 1;
            wait(0.5);
            redLED = 0;
            wait(0.1);    
        }
    }
}

void SAMP_Thread()
 {
     while(1)
     {
        m_osample.SAMP_Queue.call_every(1000, &m_osample, &Sampler::publishSample);     // Publish sample 
        m_osample.SAMP_Queue.dispatch();
        while(true) 
        {   // Flash if the event queue is exited.
            yellowLED = 1;
            wait(0.5);
            yellowLED = 0;
            wait(0.1);    
        }
     }
}

void SERIAL_Thread()
{
      while(1)
     {
        m_oserial.SERIAL_Queue.call_every(1000, &m_oserial, &Serialcomms::updateTerminal);     // Publish sample 
        m_oserial.SERIAL_Queue.dispatch();
        while(true) 
        {   // Flash if the event queue is exited.
            yellowLED = 1;
            wait(0.5);
            yellowLED = 0;
            wait(0.1);    
        }
     }   
}