A safe abstraction used to create LinuxCNC HAL components in Rust.
Unreleased - ReleaseDate
0.3.0 - 2022-11-15
- (breaking) Migrate to Rust edition 2021
- Change build process so components are dynamically linked when loaded, instead of statically linked.
0.2.0 - 2021-01-06
- #6 Added
BidirectionalPin
to allow an I/O pin to be registered on a component
-
(breaking) #10 The
HalComponentBuilder
is removed. UseHalComponent::new()
directly instead. -
(breaking) #10 Pins must now be grouped together in a struct that implements the
Resources
. For example:struct Pins { input_1: InputPin<f64>, output_1: OutputPin<f64>, } impl Resources for Pins { type RegisterError = PinRegisterError; fn register_resources(comp: &RegisterResources) -> Result<Self, Self::RegisterError> { Ok(Pins { input_1: comp.register_pin::<InputPin<f64>>("input-1")?, output_1: comp.register_pin::<OutputPin<f64>>("output-1")?, }) } }
-
(breaking) #8 Change how
HalPin
types work. Instead ofInputPinF64
,OutputPinBool
, etc, theInputPin
andOutputPin
structs are added. Usage is like this:struct Pins { input_1: InputPin<f64>, output_1: OutputPin<bool>, }
- #10 Fixed a soundness issue where pins were freed after the component exited
0.1.3 - 2020-01-29
- Fixed usage of
hal_malloc()
to correctly allocate memory for pins. Many thanks to the users in this thread for the guidance.
0.1.2 - 2020-01-28
- None
- None
- None
0.1.1 - 2020-01-27
- Added
log
crate support
- Move
println!()
s tolog
crate for less noise
Initial release