Releases: DCC-EX/DCCEXProtocol
v1.2.0
This release adds the ability to read/write CVs on both programming and main tracks with these new methods:
- handOffLoco(locoAddress, automationId)
- Use this to send a loco to an EXRAIL automation.
- You must enable retrieving routes, and the automationId must match a valid EXRAIL automation ID to work.
- readCV(cv) and validateCV(cv, value)
- Read or validate a CV for a loco on the programming track.
- The associated delegate method to implement is receivedValidateCV(int cv, int value) as both return the same response.
- writeLocoAddress(address)
- Write the provided address to a loco on the programming track.
- The associated delegate method to implement is receivedWriteLoco(int address).
- validateCVBit(cv, bit, value)
- Validate the specified bit of a CV for a loco on the programming track.
- The associated delegate method to implement is receivedValidateCVBit(int cv, int bit, int value).
- writeCV(cv, value)
- Write a CV to a loco on the programming track.
- The associated delegate method to implement is receivedWriteCV(int cv, int value).
- writeCVBit(cv, bit, value)
- Write the specified value to the specified bit of a CV to a loco on the programming track.
- There is no delegate method to implement for the response for this due to parser limitations, and we recommend writing full CVs.
- writeCVOnMain(address, cv, value)
- Write to the specified CV to the specified loco on the main track.
- writeCVBitOnMain(address, cv, bit, value)
- Write to the specified bit and CV to the specified loco on the main track.
v1.1.0
This release adds the ability to join the programming and main tracks, and set main/prog track power.
New methods added:
- joinProg()
- powerMainOn()
- powerMainOff()
- powerProgOn()
- powerProgOff()
v1.0.2
There are no functional changes in this update, but we have fixed some examples:
- Objects returned by the library had names declared as
char*
rather thanconst char*
, causing compile errors - Updated delegate examples for Loco objects to have both
receivedLocoUpdate()
for roster Loco objects, andreceivedLocoBroadcast()
for non-roster Loco objects - Ensure all delegate class implementations had
override
as they are implementing virtual methods
v1.0.1
This is a minor update to add notification of a loco broadcast to cater for updates to locos that aren't necessarily in the roster.
v1.0.0 addressed the bug that all locos end up in the roster, but there was no equivalent method to update throttles with information about non-roster locos.
This release addresses that gap by adding receivedLocoBroadcast(int address, int speed, Direction direction, int functionMap)
.
v1.0.0
This is the first Production release of the DCCEXProtocol library.
In this release:
- Add methods to clear and refresh the various lists
- Various memory leak bugfixes
- Fix bug where any Loco created was added to the roster, despite LocoSourceEntry being set
- Fix bug where getById() for Turnout, Route, and Turntable was not a static method, causing runtime errors
- Removed redundant count on Turnout, Route, and Turntable as these are available from getRosterCount, getTurnoutCount, getRouteCount, getTurntableCount
- Updated all public methods setting and getting names from char * to const char * to remove compiler warnings
- Enable configuring the max parameters parsed by DCCEXInbound via the DCCEXProtocol constructor
- Implemented many new tests
v0.0.17
Bug fix for turntables always returning isMoving() as true.
Add enableHeartbeat() method to keep WiFi clients alive.
v0.0.15
add public sendCommand() method
v0.0.15
Any acquired loco is now retained in the roster
v0.0.14
add getNumberSupportedLocos() used for the fake heartbeat
v0.0.13
- Fix bug to allow compilation on AVR platforms, change ssize_t to int
- Add serial connectivity example
- Add support for SCREEN updates to delegate
- Enhance buffer management to clear command buffer if full