Skip to content

3.0.0

Compare
Choose a tag to compare
@ssilverman ssilverman released this 18 Feb 19:59
· 479 commits to master since this release

Added

  • Two new examples, BasicSend and BasicReceive.

Changed

  • Updated keywords.txt.
  • The internal array that keeps track of responders in Receiver is now dynamically allocated; this saves about 1k of memory.
  • Changed Receiver::addResponder to Receiver::setResponder; also changed its behaviour so that setting a responder to nullptr removes any responder for the given start code.
  • Changed the behaviour of Sender::pause so that the caller must wait until transmission is complete before setting any values with one of the set functions. Instances of Sender are smaller by about 0.5k because there's no need to hold an internal "paused" array.

Fixed

  • It was technically possible to overwrite the contents of a packet in the process of being sent if pause->set->resume was done quickly. Requiring any set call to wait until transmission is complete removes having to manage the concurrency.
  • On small systems such as the Teensy LC, dynamic memory allocation in Receiver::setResponder may fail. This was fixed and the documentation in TeensyDMX.h and the README was updated. The caller can check the ENOMEM condition in errno to detect this condition.
  • The behaviour of Receiver::get was changed so that it always returns the last received value for a channel. It is no longer affected by a previous call to Receiver::readPacket for the same received packet, where the packet was reset to empty. This change makes the function behave closer to expected.