Clock with Real-Time Clock (RTC-8564) and I2C LCD module(SB1062B).
Dependencies: DebouncedEdgeIn I2cLCD_cursor Rtc8564 mbed beep
Diff: ViewModel/ClockViewModel.cpp
- Revision:
- 5:e374481e7554
- Parent:
- 2:6f0158399eff
--- a/ViewModel/ClockViewModel.cpp Sun Feb 23 00:16:54 2014 +0000 +++ b/ViewModel/ClockViewModel.cpp Fri Feb 28 14:04:16 2014 +0000 @@ -20,11 +20,13 @@ const char* ClockViewModel::WEEKDAYS[] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT", "ERR"}; -ClockViewModel::ClockViewModel(I2cLCD& i2clcd, PinName set, PinName increment, PinName decrement) +ClockViewModel::ClockViewModel(I2cLCD& i2clcd, PinName set, PinName increment, PinName decrement, PinName beep1, PinName beep2) :m_i2clcd(i2clcd), m_set(set), m_increment(increment), m_decrement(decrement), + m_beep(beep1), + m_beepGnd(beep2), m_clock(0), m_dateTime(0), m_mode(Model::CLOCK) @@ -32,7 +34,7 @@ m_set.mode(PullUp); m_increment.mode(PullUp); m_decrement.mode(PullUp); - m_set.fall(this, &ClockViewModel::setButtonOn); + m_set.fall(this, &ClockViewModel::modeButtonOn); m_increment.fall(this, &ClockViewModel::incrementButtonOn); m_decrement.fall(this, &ClockViewModel::decrementButtonOn); } @@ -100,47 +102,55 @@ setCurSor(); } -void ClockViewModel::setButtonOn() +void ClockViewModel::modeButtonOn() { + m_beep.beep(400, 0.05); m_clock->requestModeChange(); } void ClockViewModel::incrementButtonOn() { + if(m_mode == Model::CLOCK) { + return; + } + m_beep.beep(400, 0.05); m_clock->requestIncrementValue(); } void ClockViewModel::decrementButtonOn() { + if(m_mode == Model::CLOCK) { + return; + } + m_beep.beep(400, 0.05); m_clock->requestDecrementValue(); } void ClockViewModel::setCurSor() { - switch(m_mode) - { - case Model::CLOCK: - m_i2clcd.cursor(false, 0, 0); - break; - case Model::SET_YEAR: - m_i2clcd.cursor(true, 4, 0); - break; - case Model::SET_MONTH: - m_i2clcd.cursor(true, 7, 0); - break; - case Model::SET_DAY: - m_i2clcd.cursor(true, 10, 0); - break; - case Model::SET_HOUR: - m_i2clcd.cursor(true, 3, 1); - break; - case Model::SET_MINUTE: - m_i2clcd.cursor(true, 8, 1); - break; - case Model::SET_SECOND: - m_i2clcd.cursor(true, 13, 1); - break; - default: - break; + switch(m_mode) { + case Model::CLOCK: + m_i2clcd.cursor(false, 0, 0); + break; + case Model::SET_YEAR: + m_i2clcd.cursor(true, 4, 0); + break; + case Model::SET_MONTH: + m_i2clcd.cursor(true, 7, 0); + break; + case Model::SET_DAY: + m_i2clcd.cursor(true, 10, 0); + break; + case Model::SET_HOUR: + m_i2clcd.cursor(true, 3, 1); + break; + case Model::SET_MINUTE: + m_i2clcd.cursor(true, 8, 1); + break; + case Model::SET_SECOND: + m_i2clcd.cursor(true, 13, 1); + break; + default: + break; } }