Releases: fpagliughi/rust-industrial-io
Releases · fpagliughi/rust-industrial-io
Version 0.5.2
Minor release to add the new "utilities" build feature and update some dependencies.
Version 0.5.1 - Minor point release. macOS on Intel.
Version 0.5.0 - Better multithreading
- 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
Version 0.4.1
Fixed v0.4.0 release which was done from the wrong branch.
Version 0.4.0 - MacOS support and updated attributes
- #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.
Version 0.3 - libiio v0.21 and new Error handling
- 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 - Coverage for most of the underlying library
This adds support for much of the functionality of the underlying libiio library, including:
- 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.
v0.1 - Initial release
An initial release with modest coverage of the API.