Skip to content

Releases: Rahix/profirust

Version 0.5.0

20 Dec 02:21
v0.5.0
Compare
Choose a tag to compare

profirust

Added

  • Added a SerialPortPhy implementation (feature phy-serial) which uses an arbitrary OS serial device. This is a portable PHY for using USB-RS485 converters on any platform.
  • Added a debug-measure-roundtrip feature to enable debug-logging for DP data-exchange communication roundtrip times. This is useful for finding out the communication delays in a hardware setup.
  • Added a debug-measure-dp-cycle feature to enable debug-logging of the DP cycle times. That is the time between each report of cycle_completed, so one data-exchange with each peripheral attached to this DP master.

Changed

  • BREAKING Buffers in the dp::Peripheral are now stored in managed::ManagedSlice containers. This allows using owned buffers on platforms with an allocator. You may need to explicitly cast buffers into slices now, to avoid a compiler error:
     dp::Peripheral::new(
         ENCODER_ADDRESS,
         options,
    -    &mut buffer_inputs,
    -    &mut buffer_outputs,
    +    &mut buffer_inputs[..],
    +    &mut buffer_outputs[..],
     )
    -.with_diag_buffer(&mut buffer_diagnostics),
    +.with_diag_buffer(&mut buffer_diagnostics[..])
  • BREAKING The phy-linux feature is no longer enabled by default.
  • Dropped unnecessary lifetime from the LinuxRs485Phy.
  • Changed all examples to use the new SerialPortPhy so they are now all platform-independent!

Fixed

  • Fixed a crash of the active station when receiving a token telegram with invalid addresses.
  • Fixed not tracking partially-received telegrams correctly. This would show up as "# bytes in the receive buffer and we go into transmission?" warnings in some setups.
  • Fixed profirust not immediately processing all received telegrams at once. This lead to very slow performance in some multi-master environments.

gsd-parser

Fixed

  • Fixed consecutive newlines in some places tripping up the parser.

gsdtool

Fixed

  • Fixed gsdtool failing to generate an appropriate configuration for DP compact stations (compact stations are non-modular stations).

Version 0.4.0

15 Nov 00:37
v0.4.0
Compare
Choose a tag to compare
Version 0.4.0 Pre-release
Pre-release

profirust

Added

  • Reimplemented the FDL layer for correct multi-master operation.
  • Added more checks to the Linux PHY implementation to catch serial devices that did not accept the required configuration.
  • Added a "live-list" application (fdl::live_list::LiveList) which replaces the old built-in live-list.
  • Added a "DP scanner" application (dp::scan::DpScanner) which scans the bus for any DP peripherals.
  • Added support for running multiple applications ontop of a single FDL active station.

Changed

  • BREAKING The FDL layer driver is now called FdlActiveStation instead of FdlMaster.
  • BREAKING In the DP diagnostics, the master_address is now of type Option<Address>. It is None when a peripheral is not yet tied to a specific master (previously, 255 was returned).
  • BREAKING The fdl.poll() no longer returns the application events. These are now accessed via a specific method on the application types, e.g. DpMaster::take_last_events(). In code, this requires a change like this:
    - let events = fdl.poll(now, &mut phy, &mut dp_master);
    + fdl.poll(now, &mut phy, &mut dp_master);
    + let events = dp_master.take_last_events();

Removed

  • BREAKING Removed the live-list that was built into the FDL layer driver.

Version 0.3.0

31 Oct 20:48
v0.3.0
Compare
Choose a tag to compare
Version 0.3.0 Pre-release
Pre-release

gsd-parser

Fixed

  • Fixed a lot of panics caused by invalid input. Instead, gsd-parser now propagates an error for the caller to handle.

Version 0.2.1

09 May 10:22
v0.2.1
Compare
Choose a tag to compare
Version 0.2.1 Pre-release
Pre-release

gsdtool

Fixed

  • Fixed gsdtool not using the correct dependency version of gsd-parser.

Version 0.2.0

09 May 10:16
v0.2.0
Compare
Choose a tag to compare
Version 0.2.0 Pre-release
Pre-release

profirust

Added

  • The live-list now correctly mirrors the state of all stations on the bus, not just the ones in our own GAP range.

Fixed

  • Improve robustness of the FDL layer against unexpected situations.

gsd-parser/gsdtool

Added

  • Added support in gsd-parser for the older User_Prm_Data/User_Prm_Data_Len fields when no Ext_User_Prm_* data is present.
  • gsd-parser now supports the Changeable and Visible settings for ExtUserPrmData. gsdtool also honors these settings now.
  • Added more prompting variants to gsdtool to prompt for even more possible settings.

Fixed

  • Made gsd-parser parse more GSD files correctly, ignoring a few more constructs that it currently does not care about.
  • Fixed gsd-parser not being case-insensitive for some keywords.
  • Fixed gsd-parser not parsing negative numbers correctly.