Releases: Rahix/profirust
Releases · Rahix/profirust
Version 0.5.0
profirust
Added
- Added a
SerialPortPhy
implementation (featurephy-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 ofcycle_completed
, so one data-exchange with each peripheral attached to this DP master.
Changed
- BREAKING Buffers in the
dp::Peripheral
are now stored inmanaged::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
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 ofFdlMaster
. - BREAKING In the DP diagnostics, the
master_address
is now of typeOption<Address>
. It isNone
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
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
gsdtool
Fixed
- Fixed
gsdtool
not using the correct dependency version ofgsd-parser
.
Version 0.2.0
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 olderUser_Prm_Data
/User_Prm_Data_Len
fields when noExt_User_Prm_*
data is present. gsd-parser
now supports theChangeable
andVisible
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.