Clock with Real-Time Clock (RTC-8564) and I2C LCD module(SB1062B).

Dependencies:   DebouncedEdgeIn I2cLCD_cursor Rtc8564 mbed beep

/media/uploads/togayan/imgp0004s.jpg /media/uploads/togayan/lcdclock_circuit_rev4.png

ViewModel/ClockViewModel.h

Committer:
togayan
Date:
2014-03-01
Revision:
6:e7073adacdc8
Parent:
5:e374481e7554

File content as of revision 6:e7073adacdc8:

#ifndef CLOCK_VIEW_MODEL_H
#define CLOCK_VIEW_MODEL_H

#include "mbed.h"
#include "Model/Clock.h"
#include "I2cLCD/I2cLCD.h"
#include "Model/I_NotifyUpdate.h"
#include "DebouncedEdgeIn/DebouncedEdgeIn.h"
#include "beep.h"

namespace ViewModel
{
class ClockViewModel : public Model::I_NotifyUpdate, public Model::I_SetMode
{
public:
    ClockViewModel(I2cLCD& i2clcd, PinName set, PinName increment, PinName decrement, PinName sound1, PinName Sound2);
    void setClock(Model::Clock* clock);
    void initialize();

    virtual void dateTimeUpdated();
    virtual void mode(Model::OperationMode mode);

private:
    I2cLCD& m_i2clcd;
    DebouncedEdgeIn m_set;
    DebouncedEdgeIn m_increment;
    DebouncedEdgeIn m_decrement;
    Beep m_beep;
    DigitalOut m_beepGnd;
    Model::Clock* m_clock;
    struct tm* m_dateTime;
    Model::OperationMode m_mode;
    static const char* WEEKDAYS[];
        
    void modeButtonOn();
    void incrementButtonOn();
    void decrementButtonOn();
    void setCurSor();
};
}

#endif // CLOCK_VIEW_MODEL_H