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 nowSend
andSync
. Internally it has canverted to using anArc
instead of anRc
to track it's internal data. - The
Device
is nowSend
. - For high performance with multiple device, though, it's still recommended to used fully-cloned contexts for each device
- For now,
Channel
andBuffer
objects are still!Send
and!Sync
. So they should live in the same thread as their channel.
- The
- New functions to manipulate
Context
andInnerContext
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()
andattr_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 theDevice
from which it was created.Device
andChannel
now supportClone
trait.- Updates to the examples for more/different hardware.
- New
Version
struct which is returned by the library andContext
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)
- Support for
- 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 ofVoltage
,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.
- Initial version
- Basic functionality for contexts, devices, channels, and buffers.