AceTime  1.7.3
Date and time classes for Arduino that support timezones from the TZ Database, and a system clock that can synchronize from an NTP server or an RTC chip.
StmRtc.h
1 /*
2  * MIT License
3  * Copyright (c) 2020 Brian T. Park, Anatoli Arkhipenko
4  */
5 
6 #ifndef ACE_TIME_HW_STM_RTC_H
7 #define ACE_TIME_HW_STM_RTC_H
8 
9 #if ! defined(EPOXY_DUINO)
10 #if defined(ARDUINO_ARCH_STM32)
11 
12 #include <stdint.h>
13 #include <STM32RTC.h>
14 
15 namespace ace_time {
16 namespace hw {
17 
18 class HardwareDateTime;
19 
28 class StmRtc {
29  public:
31  explicit StmRtc();
32 
34  void readDateTime(HardwareDateTime* dateTime) const;
35 
37  void setDateTime(const HardwareDateTime& dateTime) const;
38 
40  bool isTimeSet() const;
41 
42  private:
43  STM32RTC* mRtc;
44 };
45 
46 } // hw
47 } // ace_time
48 
49 #endif // #if defined(ARDUINO_ARCH_STM32)
50 #endif // #if ! defined(EPOXY_DUINO)
51 #endif // #ifndef ACE_TIME_HW_STM_RTC_H