9.3 KiB
9.3 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
v0.3.0-alpha.3 2025-11-06
- Bump
sat-rsedition to 2024. - Bumped
spacepacketsto v0.17 ComponentIdis u32 now- Simplified TCP servers
Changed
Some trait renaming to be more in-line with Rust naming conventions.
EventTmHookProvider->EventTmHookActiveRequestProvider->ActiveRequestEcssTcInMemConversionProvider->CacheAndReadRawEcssTcActiveRequestMapProvider->ActiveRequestStoreCountdownProvider->Countdown
v0.3.0-alpha.2 2025-07-22
satrs-shared update
v0.3.0-alpha.1 2025-07-22
spacepackets range v0.14 to v0.15
v0.3.0-alpha.0 2025-02-18
spacepackets v0.13
Changed
- Renamed
StaticPoolConfig::newtoStaticPoolConfig::new_from_subpool_cfg_tuples. The newnewimplementation expects a type struct instead of tuples. - Moved
cfdpmodule to dedicated crate - Moved
seq_countmodule to spacepackets crate
Added
StaticHeaplessMemoryPoolwhich can be grown with user-provided static buffers.- Scheduling table for systems with a standard runtime
- Mode Tree Feature which allows building a network of mode components which can send mode messages to each other.
- Added first helper features like the
SubsystemExecutionHelperand theSubsystemCommandingHelperwhich allows to build subsystem components. Subsystem components are able to execute mode sequences and perform target keeping based on a declarative table format. - Added
DevManagerCommandingHelperwhich performs some of the boilerplate logik required by Assembly and Device Management components. This includes forwarding mode requests and handling mode replies. - First basic health module with
HealthStates and theHealthTableProvidertrait. These components are important for any FDIR components which get added in the future.
[v0.2.1] 2024-05-19
Changed
- The HAL TCP server
ServerConfig::newmethod now sets thereuse_portandreuse_addrfields totrue.
Fixed
- Possibly subtly broken v0.2.0 build artifact.
[v0.2.0] 2024-05-02
Changed
- Various improvements for the PUS stack components.
Added
- Added
HandlingStatusenumeration.
[v0.2.0-rc.5] 2024-04-24
Added
- Optional
defmt::Formatsupport for the event types, if thedefmtfeature is activated.
Changed
- Removed
MpscEventReceiver, theEventReceiveProvidertrait is implemented directly onmpsc::Receiver<EventMessage<Event>> - Renamed
PusEventDispatchertoPusEventTmCreatorWithMap. - Renamed
DefaultPusEventU32DispatchertoDefaultPusEventU32EventCreator. - Renamed
PusEventMgmtBackendProviderrenamed toPusEventReportingMap. - Reanmed Event
const_newmethods tonewand the formernewmethods tonew_checked
[v0.2.0-rc.4] 2024-04-23
Changed
- The
parse_for_ccsds_space_packetsmethod now expects a non-mutable slice and does not copy broken tail packets anymore. It also does not expect a mutablenext_write_idxargument anymore. Instead, aParseResultstructure is returned which contains thepackets_foundand an optionalincomplete_tail_startvalue.
Fixed
parse_for_ccsds_space_packetsdid not detect CCSDS space packets at the buffer end with the smallest possible size of 7 bytes.- TCP server component now re-registers the internal
mio::Pollobject if the client reset the connection unexpectedly. Not doing so prevented the server from functioning properly after a re-connect.
[v0.2.0-rc.3] 2024-04-17
docs-rs hotfix 2
[v0.2.0-rc.2] 2024-04-17
docs-rs hotfix
[v0.2.0-rc.1] 2024-04-17
spacepacketsv0.11
Added
- Added
params::WritableToBeBytes::to_vec. - New
ComponentId(u64typedef for now) which replaces formerTargetIdas 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_idmethod.- Introduced generic
EventMessagewhich is generic over the event type and the additional parameter type. This message also contains the sender ID which can be useful for debugging or application layer / FDIR logic. - Stop signal handling for the TCP servers.
- TCP server now uses
miocrate to allow non-blocking operation. The server can now handle multiple connections at once, and the context information about handled transfers is passed via a callback which is inserted as a generic as well.
Changed
- Renamed
ReceivesTcCoretoPacketSenderRawto better show its primary purpose. It now contains asend_raw_tcmethod which is not mutable anymore. - Renamed
TmPacketSourceCoretoTmPacketSource. - Renamed
EcssTmSenderCoretoEcssTmSender. - Renamed
StoreAddrtoPoolAddr. - Reanmed
StoreErrortoPoolError. - TCP server generics order. The error generics come last now.
encoding::ccsds::PacketIdValidatorrenamed toValidatorU16Id, which lives in the crate root. It can be used for both CCSDS packet ID and CCSDS APID validation.EventManager::try_event_handlingnot expects a mutable error handling closure instead of returning the occured errors.- Renamed
EventManagerBasetoEventReportCreator - Renamed
VerificationReporterCoretoVerificationReportCreator. - Removed
VerificationReporterCore. The high-level API exposed byVerificationReporterand the low level API exposed byVerificationReportCreatorshould be sufficient for all use-cases. - Refactored
EventManagerto heavily use generics instead of trait objects.SendEventProvider->EventSendProvider.idtrait method renamed tochannel_id.ListenerTable->ListenerMapProviderSenderTable->SenderMapProvider- There is an
EventManagerWithMpscand aEventManagerWithBoundedMpschelper 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_lentoWritableToBeBytes::written_lenfor consistency. PusServiceProviderrenamed toPusServiceDistributorto make the purpose of the object more clearPusServiceProvider::handle_pus_tc_packetrenamed toPusServiceDistributor::distribute_packet.PusServiceDistibutorandCcsdsDistributornow 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
TargetIdbyComponentId. - Replace most usages of
ChannelIdbyComponentId. A dedicated channel ID has limited usage due to the nature of typed channels in Rust. CheckTimerrenamed toCountdownProvider.- Renamed
TargetIdtoComponentId. - Replaced most
ChannelIdoccurences withComponentId. For typed channels, there is generally no need for dedicated channel IDs. - Changed
params::WritableToBeBytes::raw_lentowritten_lenfor consistency. EventReportercaches component ID.- Renamed
PusService11SchedHandlertoPusSchedServiceHandler. - Fixed general naming of PUS handlers from
handle_one_tctopoll_and_handle_next_tc. - Reworked verification module: The sender (
impl EcssTmSenderCore) now needs to be passed explicitely to theVerificationReportingProviderabstraction. This allows easier sharing of the TM sender component.
Fixed
- Update deprecated API for
PusScheduler::insert_wrapped_tc_cds_shortandPusScheduler::insert_wrapped_tc_cds_long. EventReporteruses interior mutability pattern to allow non-mutable API.
Removed
- Remove
objectsmodule. - Removed CCSDS and PUS distributor modules. Their worth is questionable in an architecture where routing traits are sufficient and the core logic to demultiplex and distribute packets is simple enough to be application code.
[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
VerificationReportingProviderabstraction 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
homepageentries and links in documentation.
[v0.1.0] 2024-02-12
Initial release.