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-02-17
Revision:
2:6f0158399eff
Parent:
1:f8713c387a68
Child:
3:061cccf4093a

File content as of revision 2:6f0158399eff:

#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 "Model/DateTime.h"

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

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

private:
    I2cLCD& m_i2clcd;
    InterruptIn m_set;
    InterruptIn m_increment;
    InterruptIn m_decrement;
    Model::Clock* m_clock;
    struct tm* m_dateTime;
    Model::OperationMode m_mode;
    static const char* WEEKDAYS[];
    
    void setButtonOn();
    void incrementButtonOn();
    void decrementButtonOn();
    void setCurSor();
};
}

#endif // CLOCK_VIEW_MODEL_H