Releases: ethercrab-rs/ethercrab
Releases · ethercrab-rs/ethercrab
ethercrab-v0.5.7
ethercrab-v0.6.0
Added
- #234 Added
SubDeviceRef::sdo_write_arrayto more cleanly write multiple SDO sub-indices and prevent mistakes. - #274 (@1cedsoda) Added
SubDeviceRef::sdo_read_arrayto 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_blockingto 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 onTxRxResponseto test for various state conditions. - #273 Added
SubDevice::set_alias_addressandSubDeviceRef::set_alias_addressto 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::NoWakervariant has been removed as it is no longer used or returned by any EtherCrab method. - (breaking) #263
SubDeviceIteratoris removed. The returned iterator's type signature is nowimpl Iterator<Item = SubDeviceRef<'group, ...>> - (breaking) #270 Windows:
tx_rx_taskis removed and replaced withtx_rx_task_blockingwhich is no longerasync. It must be spawned into its own thread instead of an async task.
Changed
- #263
SubDeviceGroupnow 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::Borrowas 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_framenow returnsResult<ReceiveAction, Error>instead ofResult<(), Error>. - (breaking) #269
SubDeviceGroup::tx_rx_*methods now return aTxRxResponsestruct instead of a tuple. - #278 Add
DerefandDerefMutimpls forSubDeviceRefinstead of copy/pasting methods fromSubDevice. - #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
ethercrab-v0.5.6
Fixed
- #294 Compute SM type using fallback data
when EEPROM record is incomplete.
ethercrab-v0.5.5
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
Fixed
- #288 Prevent overflow and infinite loops when reading empty or nearly-empty SubDevice EEPROMs.
ethercrab-v0.5.3
Added
- #242 Add support for PDIs longer than a
single PDU
ethercrab-v0.5.2
ethercrab-v0.5.1
Deprecated
- #248 Windows:
tx_rx_taskis replaced
withtx_rx_task_blockingwhich is no longerasync. It must be spawned into its own thread
instead of an async task.tx_rx_taskwill 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 returnsResult<ReceiveAction, Error>instead ofResult<(), Error>.
ethercrab-v0.4.4
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.