sat-rs/satrs/CHANGELOG.md
Robin Mueller 4206c06d48
Some checks failed
Rust/sat-rs/pipeline/pr-main There was a failure building this commit
changelog
2024-04-02 20:29:16 +02:00

3.7 KiB

Change Log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[unreleased]

Added

  • Added params::WritableToBeBytes::to_vec.
  • New ComponentId (u64 typedef for now) which replaces former TargetId as a generic way to identify components.
  • Various abstraction and objects for targeted requests. This includes mode request/reply types for actions, HK and modes.
  • VerificationReportingProvider::owner_id method.

Changed

  • Renamed EventManagerBase to EventReportCreator
  • Renamed VerificationReporterCore to VerificationReportCreator.
  • Removed VerificationReporterCore. The high-level API exposed by VerificationReporter and the low level API exposed by VerificationReportCreator should be sufficient for all use-cases.
  • Refactored EventManager to heavily use generics instead of trait objects.
    • SendEventProvider -> EventSendProvider. id trait method renamed to channel_id.
    • ListenerTable -> ListenerMapProvider
    • SenderTable -> SenderMapProvider
    • There is an EventManagerWithMpsc and a EventManagerWithBoundedMpsc helper type now.
  • Refactored ECSS TM sender abstractions to be generic over different message queue backends.
  • Refactored Verification Reporter abstractions and implementation to be generic over the sender instead of using trait objects.
  • Renamed WritableToBeBytes::raw_len to WritableToBeBytes::written_len for consistency.
  • PusServiceProvider renamed to PusServiceDistributor to make the purpose of the object more clear
  • PusServiceProvider::handle_pus_tc_packet renamed to PusServiceDistributor::distribute_packet.
  • PusServiceDistibutor and CcsdsDistributor now use generics instead of trait objects. This makes accessing the concrete trait implementations more easy as well.
  • Major overhaul of the PUS handling module.
  • Replace TargetId by ComponentId.
  • Replace most usages of ChannelId by ComponentId. A dedicated channel ID has limited usage due to the nature of typed channels in Rust.
  • CheckTimer renamed to CountdownProvider.
  • Renamed TargetId to ComponentId.
  • Replaced most ChannelId occurences with ComponentId. For typed channels, there is generally no need for dedicated channel IDs.
  • Changed params::WritableToBeBytes::raw_len to written_len for consistency.
  • EventReporter caches component ID.
  • Renamed PusService11SchedHandler to PusSchedServiceHandler.
  • Fixed general naming of PUS handlers from handle_one_tc to poll_and_handle_next_tc.
  • Reworked verification module: The sender (impl EcssTmSenderCore) now needs to be passed explicitely to the VerificationReportingProvider abstraction. This allows easier sharing of the TM sender component.

Fixed

  • Update deprecated API for PusScheduler::insert_wrapped_tc_cds_short and PusScheduler::insert_wrapped_tc_cds_long.
  • EventReporter uses interior mutability pattern to allow non-mutable API.

Removed

  • Remove objects module.

[v0.2.0-rc.0] 2024-02-21

Added

  • New PUS service abstractions for HK (PUS 3) and actions (PUS 8). Introducing new abstractions allows to move some boilerplate code into the framework.
  • New VerificationReportingProvider abstraction to avoid relying on a concrete verification reporting provider.

Changed

  • Verification reporter API timestamp arguments are not Optional anymore. Empty timestamps can be passed by simply specifying the &[] empty slice argument.

[v0.1.1] 2024-02-12

  • Minor fixes for crate config homepage entries and links in documentation.

[v0.1.0] 2024-02-12

Initial release.