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.cpp

Committer:
togayan
Date:
2014-02-09
Revision:
0:86ab67787717
Child:
1:f8713c387a68

File content as of revision 0:86ab67787717:

#include "ClockViewModel.h"

using ViewModel::ClockViewModel;

// Icon Name ----
// Mark
// Battery_1
// Battery_2
// Battery_3
// Battery_4
// NoSound
// Lock
// ArrowDown
// ArrowUp
// Input
// Alarm
// Tell
// Antenna
// --------------

ClockViewModel::ClockViewModel(I2cLCD& i2clcd)
    :m_i2clcd(i2clcd),
     m_sec(0)
{
}

void ClockViewModel::initialize()
{
    // print ICON
    m_i2clcd.seticon( I2cLCD::Mark );
    m_i2clcd.seticon( I2cLCD::Battery_1 );
    m_i2clcd.seticon( I2cLCD::Battery_2 );
    m_i2clcd.seticon( I2cLCD::Battery_3 );
    m_i2clcd.seticon( I2cLCD::Battery_4 );
    m_i2clcd.seticon( I2cLCD::NoSound );
    m_i2clcd.seticon( I2cLCD::Lock );
    m_i2clcd.seticon( I2cLCD::ArrowDown );
    m_i2clcd.seticon( I2cLCD::ArrowUp );
    m_i2clcd.seticon( I2cLCD::Input );
    m_i2clcd.seticon( I2cLCD::Alarm );
    m_i2clcd.seticon( I2cLCD::Tell );
    m_i2clcd.seticon( I2cLCD::Antenna );
}

void ClockViewModel::renew()
{
    m_i2clcd.seticon( I2cLCD::Antenna );
    m_i2clcd.locate(0, 0);
    m_i2clcd.printf(" 2015 / 02 / 08\n  17 : 02 : %02d", m_sec);
    m_sec = (++m_sec == 60)? 0 : m_sec;
}

void ClockViewModel::informHalfSec()
{
    m_i2clcd.clearicon( I2cLCD::Antenna );
}