Skip to content

Releases: ethercrab-rs/ethercrab

ethercrab-v0.5.7

31 Mar 12:30

Choose a tag to compare

Fixed

  • #300 Backport #236 to 0.5.x. This was backported to 0.4.x but I think something went wrong with my backports management and this fix disappeared between then and now.

ethercrab-v0.6.0

29 Mar 11:02

Choose a tag to compare

Added

  • #234 Added SubDeviceRef::sdo_write_array to more cleanly write multiple SDO sub-indices and prevent mistakes.
  • #274 (@1cedsoda) Added SubDeviceRef::sdo_read_array to read all sub-indices from a given SDO.
  • #239 Add MailboxError::Emergency { error_code, error_register } variant to surface EMERGENCY responses from CoE transactions.
  • #246 Windows: Add tx_rx_task_blocking to use in a separate thread to send/receive EitherCAT frames.
  • #242 Add support for PDIs longer than a single PDU
  • (breaking) #269 SubDeviceGroup::tx_rx_* methods now read the state (PRE-OP, OP, etc) of each SubDevice in the group, along with methods on TxRxResponse to test for various state conditions.
  • #273 Added SubDevice::set_alias_address and SubDeviceRef::set_alias_address to write an alias address to a SubDevice's EEPROM.
  • #278 Add SubDevice::{eeprom_read, eeprom_read_raw, eeprom_size, eeprom_write_dangerously} methods for working with a SubDevice's EEPROM.

Removed

  • (breaking) #260 The PduError::NoWaker variant has been removed as it is no longer used or returned by any EtherCrab method.
  • (breaking) #263 SubDeviceIterator is removed. The returned iterator's type signature is now impl Iterator<Item = SubDeviceRef<'group, ...>>
  • (breaking) #270 Windows: tx_rx_task is removed and replaced with tx_rx_task_blocking which is no longer async. It must be spawned into its own thread instead of an async task.

Changed

  • #263 SubDeviceGroup now wraps its PDI storage in an internal spinlock to allow easier use across multiple tasks/threads, at the risk of introducing deadlocks.
  • #263 Remove Error::Borrow as it's no longer returned from any EtherCrab method.
  • (breaking) #287 Increase MSRV from 1.77 to 1.81.
  • #231 Enable reading of up to 64 PDO entries per PDO from EEPROM.
  • #232 Use string index from EEPROM to read device name instead of hard coding to the first string index.
  • #232 Add {SubDevice,SubDeviceRef}::description() method to get longer device name
  • #237 Read SubDevice group status in chunks of 16 devices to speed up group status reads.
  • #239 Mailbox emergency responses now return Error::Mailbox(MailboxError::Emergency) instead of being ignored.
  • #238 Group SubDevice status checks are now chunked into however many fit into a frame, instead of being sent separately.
  • #241 (@david-boles) During init, SMs and FMMUs are reset one-by-one instead of the entire block being written to.
  • (breaking) #246 PduRx::receive_frame now returns Result<ReceiveAction, Error> instead of Result<(), Error>.
  • (breaking) #269 SubDeviceGroup::tx_rx_* methods now return a TxRxResponse struct instead of a tuple.
  • #278 Add Deref and DerefMut impls for SubDeviceRef instead of copy/pasting methods from SubDevice.
  • #287 Change SM FMMU mapping fallback behaviour to use the current SM's index instead of looking for the first FMMU of the correct direction.

Fixed

  • #229 Fix overflowing subtraction panic when calculating DC cycle offset.
  • #260 Frames received before their future's waker is registered will no longer trigger a NoWaker error.

ethercrab-v0.5.6

28 Mar 20:13

Choose a tag to compare

Fixed

  • #294 Compute SM type using fallback data
    when EEPROM record is incomplete.

ethercrab-v0.5.5

21 Mar 11:53

Choose a tag to compare

Fixed

  • #291 Allow initialisation to progress further for devices with empty EEPROMs by falling back to defaults if config data cannot be found.

ethercrab-v0.5.4

20 Mar 09:33

Choose a tag to compare

Fixed

  • #288 Prevent overflow and infinite loops when reading empty or nearly-empty SubDevice EEPROMs.

ethercrab-v0.5.3

24 Jan 14:54

Choose a tag to compare

Added

  • #242 Add support for PDIs longer than a
    single PDU

ethercrab-v0.5.2

24 Jan 14:54

Choose a tag to compare

Removed

  • (breaking) #260 The PduError::NoWaker
    variant has been removed as it is no longer used or returned by any EtherCrab method.

Fixed

  • #260 Frames received before their future's
    waker is registered will no longer trigger a NoWaker error.

ethercrab-v0.5.1

06 Dec 12:28

Choose a tag to compare

Deprecated

  • #248 Windows: tx_rx_task is replaced
    with tx_rx_task_blocking which is no longer async. It must be spawned into its own thread
    instead of an async task. tx_rx_task will be removed in a future release.

Added

  • #248 Windows: Add tx_rx_task_blocking
    to use in a separate thread to send/receive EitherCAT frames.

Changed

  • (breaking) #248 PduRx::receive_frame
    now returns Result<ReceiveAction, Error> instead of Result<(), Error>.

ethercrab-v0.4.4

03 Oct 17:26

Choose a tag to compare

Added

  • #239 Add
    MailboxError::Emergency { error_code, error_register } variant to surface EMERGENCY responses
    from CoE transactions.

Changed

  • (breaking) #230 Increase MSRV from 1.77
    to 1.79.
  • #241 (@david-boles) During init, SMs and
    FMMUs are reset one-by-one instead of the entire block being written to.
  • #239 Mailbox emergency responses now return
    Error::Mailbox(MailboxError::Emergency) instead of being ignored.

ethercrab-wire-v0.2.0

28 Jul 09:54

Choose a tag to compare

Changed

  • (breaking) #218 Removed expected and
    got fields from WireError::{Read,Write}BufferTooShort.
  • (breaking) #218 Increase MSRV from 1.75
    to 1.77.