semf
clock.cpp
Go to the documentation of this file.
1
10#include <semf/system/clock.h>
12
13namespace semf
14{
16: m_rtc(&rtc)
17{
18}
19
21{
22 m_dateTime.setDateTime(m_rtc->millisecond(), m_rtc->second(), m_rtc->minute(), m_rtc->hour(), m_rtc->day(), static_cast<Date::Month>(m_rtc->month()),
23 m_rtc->year());
24 return m_dateTime;
25}
26
27void Clock::set(DateTime& datetimeToSet)
28{
29 m_rtc->setSecond(datetimeToSet.second());
30 m_rtc->setMinute(datetimeToSet.minute());
31 m_rtc->setHour(datetimeToSet.hour());
32 m_rtc->setDay(datetimeToSet.day());
33 m_rtc->setMonth(datetimeToSet.month());
34 m_rtc->setYear(datetimeToSet.year());
35 SEMF_INFO("set");
36}
37
38app::Clock& Clock::operator=(const DateTime& datetimeToSet)
39{
40 m_rtc->setSecond(datetimeToSet.second());
41 m_rtc->setMinute(datetimeToSet.minute());
42 m_rtc->setHour(datetimeToSet.hour());
43 m_rtc->setDay(datetimeToSet.day());
44 m_rtc->setMonth(datetimeToSet.month());
45 m_rtc->setYear(datetimeToSet.year());
46 m_dateTime = datetimeToSet;
47 SEMF_INFO("set");
48 return *this;
49}
50} /* namespace semf */
app::Clock & operator=(const DateTime &datetimeToSet) override
Copies the date time.
Definition: clock.cpp:38
Clock(Rtc &rtc)
Constructor.
Definition: clock.cpp:15
DateTime & now() override
Returns the momentary date time from Rtc.
Definition: clock.cpp:20
void set(DateTime &datetimeToSet) override
Sets the DateTime information from datetimeToSet to the Rtc.
Definition: clock.cpp:27
uint16_t year() const
Returns the year.
Definition: date.cpp:77
uint8_t day() const
Returns the day.
Definition: date.cpp:37
Month month() const
Returns the month.
Definition: date.cpp:57
The DateTime class provides date and time functionality as a point of time. It combines features of t...
Definition: datetime.h:31
bool setDateTime(uint16_t millisecond, uint8_t second, uint8_t minute, uint8_t hour, uint8_t day, Month month, uint16_t year)
Sets date time information and system clock if Rtc is registered.
Definition: datetime.cpp:25
Interface for the real time clock.
Definition: rtc.h:23
virtual uint8_t second() const =0
Get the seconds from the current time.
virtual void setMonth(uint8_t month)=0
For set a new date.
virtual uint16_t millisecond()=0
Get the milliseconds from the current time.
virtual void setMinute(uint8_t minute)=0
For set a new time.
virtual void setHour(uint8_t hour)=0
For set a new time.
virtual uint8_t day() const =0
virtual uint16_t year() const =0
Get the current year.
virtual void setSecond(uint8_t second)=0
For set a new time.
virtual uint8_t hour() const =0
Get the hours from the current time.
virtual uint8_t month() const =0
Get the current month.
virtual uint8_t minute() const =0
Get the minutes from the current time.
virtual void setYear(uint16_t year)=0
For set a new date.
virtual void setDay(uint8_t day)=0
For set a new date.
uint8_t second() const
Returns the seconds from system clock or static value.
Definition: time.cpp:63
uint8_t minute() const
Returns the minutes.
Definition: time.cpp:83
uint8_t hour() const
Returns the hours.
Definition: time.cpp:103
The Clock class provides real time clock functionality. It can return a DateTime object with actual d...
Definition: clock.h:31
#define SEMF_INFO(...)
Definition: debug.h:41