Skip to content

Latest commit

 

History

History
109 lines (72 loc) · 2.58 KB

CHANGELOG.md

File metadata and controls

109 lines (72 loc) · 2.58 KB

Changelog

A safe abstraction used to create LinuxCNC HAL components in Rust.

Unreleased - ReleaseDate

0.3.0 - 2022-11-15

Changed

  • (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

Added

  • #6 Added BidirectionalPin to allow an I/O pin to be registered on a component

Changed

  • (breaking) #10 The HalComponentBuilder is removed. Use HalComponent::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 of InputPinF64, OutputPinBool, etc, the InputPin and OutputPin structs are added. Usage is like this:

    struct Pins {
        input_1: InputPin<f64>,
        output_1: OutputPin<bool>,
    }

Fixed

  • #10 Fixed a soundness issue where pins were freed after the component exited

0.1.3 - 2020-01-29

Fixed

  • 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

Added

  • None

Changed

  • None

Fixed

  • None

0.1.1 - 2020-01-27

Added

  • Added log crate support

Changed

  • Move println!()s to log crate for less noise

0.1.0 - 2020-01-27

Initial release