Year Two Project ELEC 2645: Embedded Systems Project Portable Weather Station

Dependencies:   BMP180 ConfigFile N5110 PowerControl beep mbed

PrsViewLogScreen.h

Committer:
OHstin
Date:
2015-05-11
Revision:
0:da2b8c7a1ec1

File content as of revision 0:da2b8c7a1ec1:

/**
@file PressureViewLogScreen.h

*/

#ifndef PRSVIEWLOGSCREEN_H
#define PRSVIEWLOGSCREEN_H

#include "DataController.h"
#include "Inputs.h"

/**
@brief shows previously logged pressure data on the LCD screen\n
@brief the pressure data is displayed in a convenient way by use of
@brief a data controller
@author Augustine K Kizito
@date April 2015
*/

class PrsViewLogScreen : public DataController
{
private:

    void onEnter(); // user pressed the enter button
    void onBack(); // user pressed the back button

public:
    /**
    Creates an instance of the Pressure View Log Screen
    
    */
    PrsViewLogScreen()
        :DataController( "/local/prs.cfg", // File location
                         0) // parameter, 1 for temperatue, 0 for pressure
    {};
    /**
    Manages the execution of the Pressure View Log Screen
    
    @returns
    
    -1 - Navigate to previous screen
    */
    int start(); 


};










int PrsViewLogScreen::start()
{
    enterButton.mode(PullDown);
    backButton.mode(PullDown);
    
    enterButton.rise(this,&PrsViewLogScreen::onEnter); // call onEnter when the enter button is pressed
    backButton.rise(this,&PrsViewLogScreen::onBack); // call onBack when the back button is pressed
    
    debounce.start();
    
    // launch the data controller
    DataController::begin();

    enterButton.rise(NULL);
    backButton.rise(NULL);
    return -1;
}

void PrsViewLogScreen::onEnter()
{
   if (debounceSuccess()) { // check if debouncing succeeded
        // sound the buzzer
        playSound();
        DataController::nextPage(); 
        debounce.reset(); // reset the debounce timer
    }  

}

void PrsViewLogScreen::onBack()
{
    if (debounceSuccess()) { // check if debouncing succeeded
        // sound the buzzer
        playSound();
        DataController::previousPage();
        debounce.reset(); // reset the debounce timer
    }
}

#endif