Skip to content

Latest commit

 

History

History
65 lines (50 loc) · 4.13 KB

CHANGELOG.md

File metadata and controls

65 lines (50 loc) · 4.13 KB

Change Log

for Rust Industrial I/O

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

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

v0.5.1 - 2022-02-05

  • iio_info_rs utility now supports network and URI contexts.
  • PR #19 macOS build makes a distinction for Intel and non-Intel builds when searching for Homebrew Frameworks (libiio library).
  • PR #20 Fix some clippy suggestions. Particularly cleaner casting of raw pointers, etc.

v0.5.0 - 2022-01-30

  • Started loosening thread safety restrictions:
    • The Context is now Send and Sync. Internally it has canverted to using an Arc instead of an Rc to track it's internal data.
    • The Device is now Send.
    • For high performance with multiple device, though, it's still recommended to used fully-cloned contexts for each device
    • For now, Channel and Buffer objects are still !Send and !Sync. So they should live in the same thread as their channel.
  • New functions to manipulate Context and InnerContext objects:
    • Context::try_release_inner() attempts to get the inner context out of the context wrapper.
    • Context::try_deep_clone() to make a new context around a deep copy of the inner context (and thus a copy of the C lib context).
    • From<InnerContext> for Context

v0.4.0 - 2022-01-28

  • #12 Context construction now takes a Backend enumeration type.
  • The InnerContext is now public and can be cloned and sent to another thread to create a cloned context in the other thread.
  • #15 Generic attr_read() and attr_write() functions for devices, channels, and buffers.
  • #17 macOS support (for network clients)
  • Buffer attribute read/write functions and iterators moved into the Buffer struct.
  • Buffer struct now contains a clone of the Device from which it was created.
  • Device and Channel now support Clone trait.
  • Updates to the examples for more/different hardware.
  • New Version struct which is returned by the library and Context version query functions.

v0.3 - 2021-05-26

  • Support for libiio v0.21
  • Updated error handling:
    • Support for std::error
    • Implementation changed to use thiserror (from error_chain)
    • Specific types defined for common errors intead of just string descriptions (WrongDataType, BadReturnSize, InvalidIndex, etc)
  • New device capabilities:
    • remove_trigger()
    • is_buffer_capable()
  • New utility app: riio_stop_all

v0.2 - 2019-12-29

  • Support for libiio v0.18
  • Further implementation of libiio functions for contexts, devices, channels, etc.
  • Functions to read and write buffers, with and without conversions, and to convert individual samples to and from hardware format.
  • [Breaking] Removed previous ChannelType for Input/Output as it conflicted with the library's channel types of Voltage, Current, Power, etc, and implemented the library type.
  • Contexts have a ref-counted "inner" representation using Rc<>, and can be "cloned" quickly by incrementing the count. (Thanks, @skrap!)
  • Devices carry a cloned reference to the context that created them, thus keeping the context alive until the last device using it gets dropped.
  • Some clippy-recommended lints.
  • Example app to collect and process data a buffer at a time, with conversions.

v0.1 - 2018-11-21

  • Initial version
  • Basic functionality for contexts, devices, channels, and buffers.