Releases: bxparks/AceTime
Releases · bxparks/AceTime
0.6 - simplify Clock classes
- 0.6
- Update tests to use
UnixHostDuino. - Fix broken restore functionality in
CommandLineClock. Make it work
on Unix using UnixHostDuino. Make it work on ESP8266 and ESP32 again. - Update flash memory consumption numbers in
zonedb/zone_infos.cppand
zonedbx/zone_infos.cpp. - Lift
ace_time::common::DateStringsto justace_time::DateStrings
because it was the only data/time class in thecommon::namespace so
it seemed inconsistent and out of place. - Breaking Change Large refactoring and simplification of the
ace_time::clockclasses. MergedTimeKeeperandTimeProviderinto a
singleClockclass hierarcy. MergedSystemClockSyncLoop(separate
class) intoSystemClockLoop(subclass ofSystemClock) and
SystemClockSyncCoroutine(separate class) intoSystemClockCoroutine
(subclass ofSystemClockwith mixin oface_routine::Coroutine). Merged
keepAlive()into::loop()and::runCoroutine()methods, so we don't
need to worry about it separately anymore. MadeSystemClockLoopuse the
non-blocking methods ofClock, making it as responsive as
SystemClockCoroutine. - Add
UnixClock.hwhich provides access to the internal Unix clock
when using UnixHostDuino.
- Update tests to use
v0.5.2 - support ATmega2560; pack zoneinfo files to save 2.5 - 6 kB of flash
- 0.5.2
- Create
HelloZoneManagerand add it to theREADME.md. - Recommend using "Arduino MKR ZERO" board or "SparkFun SAMD21 Mini
Breakout" board for the "SAMD21 M0 Mini" boards. - Pack
basic::ZoneInfo,extended:ZoneInfoand related structs tighter on
32-bit processors, saving 2.5kB on the Basic zoneinfo files and 5.6kB on
Extended zoneinfo files. - Pack
basic::Transitionandextended::Transitiontighter on 32-bit
processors, saving 20-32 bytes onBasicZoneProcessorand
ExtendedZoneProcessor. - Test and support ATmega2560 AVR processor.
- Replace all uses of
SerialwithSERIAL_PORT_MONITORfor compatibility
with boards (e.g. SAMD boards) which useSerialUSBas the serial
monitor.
- Create
0.5.1 - Support SAMD21 boards
- 0.5.1 (2019-07-24, TZ DB version 2019a, beta)
- Add documentation about the ZoneManager into
USER_GUIDE.md. - Move
DateStringsstring pointers into PROGMEM, saving 42 bytes of RAM. - Use
SERIAL_PORT_MONITORinstead ofSerialeverywhere for portability
across different Arduino boards. - Support SAMD21 boards except for EEPROM which SAMD21 does not support.
- Add documentation about the ZoneManager into
0.5 - ZoneManager allows dynamic creation of TimeZone
- 0.5 (2019-07-21, TB DB version 2019a, beta)
- Remove over-engineered
SystemClockHeartbeatLoopand
SystemClockHeartbeatLoopand replace with just a call to
SystemClock::keepAlive(). - Remove overly complex
ManualZoneProcessorand merge most of its
functionality directly into theTimeZoneusingkTypeManual. We lose
the manual abbreviations provided byManualZoneProcessorbut the
simplification of using just theTimeZoneobject without an extra object
seems worth it. - Add a stable
zoneIdtoZoneInfothat identifies a zone. It is
formed using a hash of the fully qualified zonename. The
tzcompiler.pygenerator script will detect hash collisions and create an
alternate hash. - Rename old
ZoneManageras theZoneRegistrar, and
repurposeZoneManageras theTimeZonefactory, which keeps an internal
cache ofZoneProcessor.TimeZoneobjects can be dynamically bound to
ZoneProcessorobjects usingcreateForZoneInfo(),
createForZoneName(), `createForZoneId(). - Add
TimeZoneDatadata struct to allow serialization of a TimeZone object
as a zoneId so that it can be reconstructed using
ZoneManger::createForTimeZoneData(). - Rename
ZoneSpecifiertoZoneProcessorto describe its functionality
better.ZoneInfois now passed directly into the TimeZone object using
theTimeZone::forZoneInfo()factory method, with theZoneProcessor
acting as a helper object.
- Remove over-engineered
0.4 - store zoneinfo files in PROGMEM
- 0.4 (2019-07-09, TZ DB version 2019a, beta)
- Support the less-than-or-equal syntax
{dayOfWeek}<={dayOfMonth}
appearing in version 2019b of the TZ Database which containsRule Zion, 2005 to 20012, IN Apr, ON Fri<=1. - Add BasicZoneManager and ExtendedZoneManager to retrieve ZoneInfo
from TZ Database string identifier (e.g. "America/Los_Angeles"). - Add configuration options (
ACE_TIME_USE_BASIC_PROGMEMand
ACE_TIME_USE_EXTENDED_PROGMEM) to place zoneinfo
files into PROGMEM to save static RAM.
- Support the less-than-or-equal syntax
0.3.1 - add copyright notices to source files
- 0.3.1 (2019-06-30, beta)
- Add copyright notices on source files.
- Fix typos and formatting of
README.mdandUSER_GUIDE.md. - No functional change from 0.3.
0.3 - support Link entries from TZ Database
- 0.3 (2019-06-28, beta)
- Support
Linkentries from TZ Database files as C++ references to
correspondingZoneentries. - Add
backwardandetcterafiles from TZ Database to the tzcompiler.py
processing.ExtendedZoneSpecifiernow supports every Zone and Link
entry in the TZ Database (except those inbackzoneandsystemv). - Add better zone and link name normalization. Convert
+into_PLUS_,
all other non-alphanumeric (0-9a-zA-Z_) converted to underscore_. - Move validation unit tests into separate
tests/validationdirectory.
Use Makefiles to generatevalidation_data.*files dynamically at compile
time.
- Support
0.2 - better handling of gaps and overlaps in wall time with some date normalization
- 0.2 (2019-06-26, alpha)
- Reduce flash memory size of WorldClock by removing extra font.
- Split
USER_GUIDE.mdfromREADME.md. - Rename
ace_time::providertoace_time::clockand rename
SystemTimeProvidertoSystemClock. - Add
HelloSystemClockexample code. - Add
isValidYear()into variousforComponents()methods to check
int8_t range of year component. - Rename
DateStrings::weekDay*()methods todayOfWeek*()for
consistency. - Change
ZonedDateTime::printTo()format to match Java Time format. - Remove
frienddeclarations not related to unit tests. - Remove redundant definitions of
kInvalidEpochSeconds, standardize on
LocalDate::kInvalidEpochSeconds. - Make
timeOffseta required parameter for constructors and factory
methodsOffsetDateTimeinstead of defaulting toTimeOffset(). - Make
timeZonea required parameter in constructors and factory methods
ofZonedDateTime. - Fix
BasicZoneSpecifier::getOffsetDateTime()to handle gaps and overlaps
in a reasonable way, and perform some amount of normalization.
0.1 - initial release
- 0.1 (2019-06-15)
- Initial release on GitHub to establish a reference point.