ChangeLog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and its stricter, better defined, brother Common Changelog.

This project adheres to Semantic Versioning.


Unreleased

GitHub Release: Unreleased

Changed

Added

Removed

Fixed


1.6.2

GitHub Release: 1.6.2

Changed

  • null terminate all character strings (c-style character arrays)
    • This applies to all characters added to an input buffer from the charFrom{Input/Holding}Register(...) and charFromFrame(...) functions.

1.6.1

GitHub Release: 1.6.1

Added

  • Added debugging of slicing/subsetting arrays

Fixed

  • Reordered retry logic

1.6.0

GitHub Release: 1.6.0

Changed

  • Reorganized functions in h file
  • Renamed some internal variables in the cpp file.

Added

  • Added overload functions {type}FromHoldingRegister(..). These are identical to the {type}FromRegister(..) functions.
  • Added support for broadcasts to address 0.

1.5.0

GitHub Release: 1.5.0

Changed

  • Change the timeout for the underlying stream object immediately after frame timeout is changed.

Added

  • Added functions to set and get pointers to the stream used for communication
  • Added functions to set and get the slave ID.
  • Added additional constructors

1.4.0

GitHub Release: 1.4.0

Changed

  • Removed all variable length arrays within functions
  • No longer trimming returned Strings

Added

  • Implemented a single static command buffer
  • Added the define COMMAND_BUFFER_SIZE to control the size of the command buffer.
  • Added charToRegister(..) and charToFrame(..) functions, each accepting a pointer to a constant char (const char*).

Fixed

  • Fixed return value for sendCommand function.

1.3.0

GitHub Release: 1.3.0

Changed

  • The sendCommand function will now return a value of > 4095 (0x0FFF) if there has been an error. The upper most byte of the uint16_t response to the command is the modbus error code. This makes it much easier to differentiate error responses and no responses.

Added

  • Added extra functions specifying "holding" or "input" in the function name.
  • Added the ability to change the number of times to retry commands.
  • Added the ability to change the command and frame timeouts.
  • Added an enum for modbus error codes.
  • Added a variable to store the last error code, which can be checked with getLastError() and printed with printLastError().

Fixed

  • Fixed calculate of expected return size

1.2.0

GitHub Release: 1.2.0

Changed

  • When dumping the buffer, wait the frame timeout time between characters instead of a set 1ms.

1.1.0

GitHub Release: 1.1.0

Added

  • Added setters and getters for the enable pin, modbus command timeout, and modbus frame timeout.

1.0.1

GitHub Release: 1.0.1

Fixed

  • Corrected comments on input and holding registers. Input registers are the ones that are read only; holding registers are read/write.

1.0.0

GitHub Release: 1.0.0

Added

  • Added functions to read coils
  • Added functions to write single and multiple coils
  • Added functions to read discrete inputs
  • Added functions to read holding and input registers without requiring the command type as input
  • Added functions to read coils, discrete inputs, holding, and input registers into a user buffer
  • Added code spell configuration

Fixed

  • Fixed spelling errors

0.7.3

GitHub Release: 0.7.3

Changed

  • Re-release of 0.7.2 with updates to VERSION and library properties/json

0.7.2

GitHub Release: 0.7.2

Changed

  • Update readWriteRegister.ino example to work with AltSoftSerial

Added

  • Add a new getSetAddress.ino example #30

Fixed

  • Fix printFrameHex() that was broken with v0.7.0 #29

0.7.1

GitHub Release: 0.7.1

Changed

  • Update examples to apply to more processors
  • Implement testing of more processors
  • Set the platforms/architectures supported list to "*" (all)

0.7.0

GitHub Release: 0.7.0

Changed

  • Applied clang format to source and examples.
  • Moved the scanRegisters example from the utils to the examples folder.
  • Updated Arduino library keywords file.
  • Changed the debugging functionality to not require a define.

Added

  • Added Doxygen documentation comments.
  • Created a documentation page using Doxygen.
  • Added CI checks with Github actions using reusable workflows.

Removed

  • Removed build files and documentation for custom RS-485 boards. This information can now be found in its own repository.

0.6.8

GitHub Release: 0.6.8

Added

  • Added documentation for the wing shield.

0.6.7

GitHub Release: 0.6.7

Fixed

  • Fix by neilh10 for a null pointer in the debugging causing crashes and other "undefined behavior."

0.6.5

GitHub Release: 0.6.5

Fixed

  • Fixed attoseconds for TAI64NA time formats.
  • Fixed compiler warnings when compiling with stricter -Wextra flag.

0.6.2

GitHub Release: 0.6.2

Added

  • Added the ability to use the multiple register writing command when only writing to one register.

0.5.3

GitHub Release: 0.5.3

Changed

  • Changed the keywords describing the library.

0.5.2

GitHub Release: 0.5.2

Added

  • Added implementations for TAI64N and TAI64NA

Fixed

  • Fixed TAI64 implementation

0.4.8

GitHub Release: 0.4.8

Changed

  • Updated ReadMe
  • Updated examples

0.4.3

GitHub Release: 0.4.3

Fixed

  • Fixed issues dealing with unprintable characters in strings

0.4.0

GitHub Release: 0.4.0

  • Added functions to write to registers and frames

0.1.2

GitHub Release: 0.1.2

Changed

  • Made the response buffer public

0.1.0

GitHub Release: 0.1.0

Added

  • Initial release