Skip to content

Commit a5fd76c

Browse files
authored
Merge pull request #34 from bxparks/develop
merge 1.1.2 into master
2 parents 02a56f3 + 96119ed commit a5fd76c

File tree

311 files changed

+2067
-5590
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

311 files changed

+2067
-5590
lines changed

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# Changelog
22

33
* Unreleased
4+
* 1.1.2 (2020-10-25, TZ DB version 2020d)
5+
* Move examples/WorldClock, examples/OledClock and examples/CommandLineClock
6+
to a new repo (https://github.com/bxparks/clocks).
7+
* Update `src/ace_time/zonedb` and `src/ace_time/zonedbx` to TZDB 2020d
8+
(https://mm.icann.org/pipermail/tz-announce/2020-October/000062.html).
9+
* "Palestine ends DST earlier than predicted, on 2020-10-24."
410
* 1.1.1 (2020-10-18, TZ DB version 2020c)
511
* Add documentation for using the `PrintStr<N>` class from the AceUtils
612
library (https://github.com:bxparks/AceUtils) on the various `printTo()`
@@ -19,7 +25,9 @@
1925
`BasicTransitionTest` and `ExtendedTransitionTest` classes.
2026
* Upgrade target version numbers of 3rd party libraries used for
2127
tests/validation: pytz from 2019.3 to 2020.1, JDK 11.0.6 to 11.0.8.
22-
* Upgrade to TZDB 2020c.
28+
* Upgrade to TZDB 2020c
29+
(https://mm.icann.org/pipermail/tz-announce/2020-October/000060.html)
30+
* "Fiji starts DST later than usual, on 2020-12-20."
2331
* Restrict GitHub Actions workflow to run just BasicHinnantDateTest and
2432
ExtendedHinnantDateTest, because the other Python and Java tests break
2533
every time a new TZDB version comes out.

DEVELOPER.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,10 @@ available.
129129
* zonedb
130130
* `$ cd src/ace_time/zonedb`
131131
* Update the `TZ_VERSION` in the `Makefile`.
132-
* `$ make clean`
133132
* `$ make`
134133
* zonedbx
135134
* `$ cd src/ace_time/zonedbx`
136135
* Update the `TZ_VERSION` in the `Makefile`.
137-
* `$ make clean`
138136
* `$ make`
139137
* Update the CHANGELOG.md.
140138
* Commit the changes to git
@@ -157,6 +155,9 @@ will fail until the underying timezone database of the OS is updated.
157155
* `docs/doxygen.cfg`
158156
* `library.properties`
159157
* `CHANGELOG.md`
158+
* Bump the version numbers in the unit tests:
159+
* `BasicZoneProcessorTest/BasicZoneProcessorTest.ino`
160+
* `ExtendedZoneProcessorTest/ExtendedZoneProcessorTest.ino`
160161
* `$ git commit -m "..."`
161162
* Update and commit the Doxygen docs. This is done as a separate git commit
162163
because the Doxygen changes are often so large that they obscure all other

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,8 @@ AceTime library with one timezone using the `BasicZoneProcessor` and the
188188
* 9-10 kB of flash and 350 bytes of RAM on an 8-bit AVR processors,
189189
* 6-22 kB of flash and 900-1800 bytes of RAM on a 32-bit processors.
190190

191-
An example of more complex application is the [WorldClock](examples/WorldClock)
191+
An example of more complex application is the
192+
[WorldClock](https://github.com/bxparks/clocks/tree/master/WorldClock)
192193
which has 3 OLED displays over SPI, 3 timezones using `BasicZoneProcessor`, a
193194
`SystemClock` synchronized to a DS3231 chip on I2C, and 2 buttons with
194195
debouncing and event dispatching provided by the
@@ -211,7 +212,7 @@ Conversion from an epochSeconds to date-time components including timezone
211212
* 2.8 microseconds on an ESP32,
212213
* 6 microseconds on a Teensy 3.2.
213214

214-
**Version**: 1.1.1 (2020-10-18, TZ DB version 2020c)
215+
**Version**: 1.1.2 (2020-10-25, TZ DB version 2020d)
215216

216217
**Changelog**: [CHANGELOG.md](CHANGELOG.md)
217218

@@ -454,11 +455,12 @@ Here is a photo of the [WorldClock](examples/WorldClock) that supports 3
454455
OLED displays with 3 timezones, and automatically adjusts the DST transitions
455456
for all 3 zones:
456457

457-
![WorldClock](examples/WorldClock/WorldClock.jpg)
458+
![WorldClock](https://github.com/bxparks/clocks/blob/master/WorldClock/WorldClock.jpg)
458459

459460
## User Guide
460461

461462
See the [AceTime User Guide](USER_GUIDE.md) for information on:
463+
462464
* Installation
463465
* Date and Time classes
464466
* Mutations

USER_GUIDE.md

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
See the [README.md](README.md) for introductory background.
44

5-
Version: 1.1.1 (2020-10-18, TZ DB version 2020c)
5+
Version: 1.1.2 (2020-10-19, TZ DB version 2020d)
66

77
## Installation
88

@@ -98,14 +98,6 @@ The following programs are provided in the `examples/` directory:
9898
* same as `HelloSystemClock` but using AceRoutine coroutines
9999
* [HelloNtpClock](examples/HelloNtpClock/)
100100
* demo program of `NtpClock`
101-
* [CommandLineClock](examples/CommandLineClock/)
102-
* a clock with a DS3231 RTC chip, an NTP client, and using the serial port
103-
for receiving commands and printing results, useful for debugging
104-
* [OledClock](examples/OledClock/)
105-
* a digital clock using a DS3231 RTC chip, an NTP client, 2 buttons, and an
106-
SSD1306 OLED display
107-
* [WorldClock](examples/WorldClock/)
108-
* a clock with 3 OLED screens showing the time at 3 different time zones
109101
* [AutoBenchmark](examples/AutoBenchmark/)
110102
* perform CPU and memory benchmarking of various methods and print a report
111103
* [MemoryBenchmark](examples/MemoryBenchmark/)
@@ -117,6 +109,18 @@ The following programs are provided in the `examples/` directory:
117109
* compare AceTime with
118110
[Arduino Time Lib](https://github.com/PaulStoffregen/Time)
119111

112+
Various fully-featured hardware clocks can be found in the
113+
https://github.com/bxparks/clocks repo (previously hosted under `examples/`).
114+
115+
* [CommandLineClock](https://github.com/bxparks/clocks/tree/master/CommandLineClock)
116+
* a clock with a DS3231 RTC chip, an NTP client, and using the serial port
117+
for receiving commands and printing results, useful for debugging
118+
* [OledClock](https://github.com/bxparks/clocks/tree/master/OledClock)
119+
* a digital clock using a DS3231 RTC chip, an NTP client, 2 buttons, and an
120+
SSD1306 OLED display
121+
* [WorldClock](https://github.com/bxparks/clocks/tree/master/WorldClock)
122+
* a clock with 3 OLED screens showing the time at 3 different time zones
123+
120124
## Motivation and Design Considerations
121125

122126
In the beginning, I created a digital clock using an Arduino Nano board, a small
@@ -1512,8 +1516,9 @@ for custom zoneRegistries because the `BasicZoneManager` and
15121516
`ExtendedZoneManager` expect to find them in static RAM or flash memory
15131517
according to this macro.
15141518

1515-
See [CommandLineClock](examples/CommandLineClock/) for an example of how these
1516-
custom registries can be created and used.
1519+
See
1520+
[CommandLineClock](https://github.com/bxparks/clocks/tree/master/CommandLineClock)
1521+
for an example of how these custom registries can be created and used.
15171522

15181523
#### createForZoneName()
15191524

@@ -1674,7 +1679,8 @@ Time](https://nodatime.org/)) avoid the problem altogether by making all objects
16741679
immutable. In those libraries, mutations occur by creating a new copy of the
16751680
target object with a new value for the mutated parameter. Making the objects
16761681
immutable is definitely cleaner, but it causes the code size to increase
1677-
significantly. For the case of the [WorldClock](example/WorldClock) program,
1682+
significantly. For the case of the
1683+
[WorldClock](https://github.com/bxparks/clocks/tree/master/WorldClock) program,
16781684
the code size increased by 500-700 bytes, which I could not afford because the
16791685
program takes up almost the entire flash memory of an Ardunio Pro Micro with
16801686
only 28672 bytes of flash memory.
@@ -1716,8 +1722,8 @@ environments is the code size, not the CPU time.)
17161722
It is not clear that making the AceTime objects mutable was the best design
17171723
decision. But it seems to produce far smaller code sizes (hundreds of bytes of
17181724
flash memory saved for something like
1719-
[examples/WorldClock](examples/WorldClock)), while providing the features that I
1720-
need to implement the various Clock applications.
1725+
[WorldClock](https://github.com/bxparks/clocks/tree/master/WorldClock)), while
1726+
providing the features that I need to implement the various Clock applications.
17211727

17221728
### TimeOffset Mutation
17231729

@@ -2567,9 +2573,11 @@ Here is a short summary for an 8-bit microcontroller (e.g. Arduino Nano):
25672573
25682574
These numbers indicate that the AceTime library is useful even on a limited
25692575
8-bit controller with only 30-32 kB of flash and 2 kB of RAM. As a concrete
2570-
example, the [WorldClock](examples/WorldClock) program contains 3 OLED displays
2571-
over SPI, 2 buttons, one DS3231 chip, and 3 timezones using AceTime, and these
2572-
all fit inside a Arduino Pro Micro limit of 30 kB flash and 2.5 kB of RAM.
2576+
example, the
2577+
[WorldClock](https://github.com/bxparks/clocks/tree/master/WorldClock) program
2578+
contains 3 OLED displays over SPI, 2 buttons, one DS3231 chip, and 3 timezones
2579+
using AceTime, and these all fit inside a Arduino Pro Micro limit of 30 kB flash
2580+
and 2.5 kB of RAM.
25732581
25742582
## Comparisons to Other Time Libraries
25752583

docs/doxygen.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ PROJECT_NAME = "AceTime"
3838
# could be handy for archiving the generated documentation or if some version
3939
# control system is used.
4040

41-
PROJECT_NUMBER = 1.1.1
41+
PROJECT_NUMBER = 1.1.2
4242

4343
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4444
# for a project that appears at the top of each page and should give viewer a

docs/html/AceTime_8h_source.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<tr style="height: 56px;">
2323
<td id="projectalign" style="padding-left: 0.5em;">
2424
<div id="projectname">AceTime
25-
&#160;<span id="projectnumber">1.1.1</span>
25+
&#160;<span id="projectnumber">1.1.2</span>
2626
</div>
2727
<div id="projectbrief">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.</div>
2828
</td>
@@ -121,8 +121,8 @@
121121
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;ace_time/clock/SystemClockCoroutine.h&quot;</span></div>
122122
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
123123
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">// Version format: xxyyzz == &quot;xx.yy.zz&quot;</span></div>
124-
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION 10101</span></div>
125-
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION_STRING &quot;1.1.1&quot;</span></div>
124+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION 10102</span></div>
125+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION_STRING &quot;1.1.2&quot;</span></div>
126126
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
127127
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#endif</span></div>
128128
</div><!-- fragment --></div><!-- contents -->

docs/html/BasicZoneProcessor_8cpp_source.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<tr style="height: 56px;">
2323
<td id="projectalign" style="padding-left: 0.5em;">
2424
<div id="projectname">AceTime
25-
&#160;<span id="projectnumber">1.1.1</span>
25+
&#160;<span id="projectnumber">1.1.2</span>
2626
</div>
2727
<div id="projectbrief">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.</div>
2828
</td>

docs/html/BasicZoneProcessor_8h_source.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<tr style="height: 56px;">
2323
<td id="projectalign" style="padding-left: 0.5em;">
2424
<div id="projectname">AceTime
25-
&#160;<span id="projectnumber">1.1.1</span>
25+
&#160;<span id="projectnumber">1.1.2</span>
2626
</div>
2727
<div id="projectbrief">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.</div>
2828
</td>

docs/html/BasicZone_8h_source.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<tr style="height: 56px;">
2323
<td id="projectalign" style="padding-left: 0.5em;">
2424
<div id="projectname">AceTime
25-
&#160;<span id="projectnumber">1.1.1</span>
25+
&#160;<span id="projectnumber">1.1.2</span>
2626
</div>
2727
<div id="projectbrief">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.</div>
2828
</td>

docs/html/Brokers_8h.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<tr style="height: 56px;">
2323
<td id="projectalign" style="padding-left: 0.5em;">
2424
<div id="projectname">AceTime
25-
&#160;<span id="projectnumber">1.1.1</span>
25+
&#160;<span id="projectnumber">1.1.2</span>
2626
</div>
2727
<div id="projectbrief">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.</div>
2828
</td>

0 commit comments

Comments
 (0)