7.3 KiB
7.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]
Changed
- Renamed
StaticPoolConfig::new
toStaticPoolConfig::new_from_subpool_cfg_tuples
. The newnew
implementation expects a type struct instead of tuples. - Moved
cfdp
module to dedicated crate - Moved
seq_count
module to spacepackets crate
Added
StaticHeaplessMemoryPool
which can be grown with user-provided static buffers.- Scheduling table for systems with a standard runtime
[v0.2.1] 2024-05-19
Changed
- The HAL TCP server
ServerConfig::new
method now sets thereuse_port
andreuse_addr
fields 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
HandlingStatus
enumeration.
[v0.2.0-rc.5] 2024-04-24
Added
- Optional
defmt::Format
support for the event types, if thedefmt
feature is activated.
Changed
- Removed
MpscEventReceiver
, theEventReceiveProvider
trait is implemented directly onmpsc::Receiver<EventMessage<Event>>
- Renamed
PusEventDispatcher
toPusEventTmCreatorWithMap
. - Renamed
DefaultPusEventU32Dispatcher
toDefaultPusEventU32EventCreator
. - Renamed
PusEventMgmtBackendProvider
renamed toPusEventReportingMap
. - Reanmed Event
const_new
methods tonew
and the formernew
methods tonew_checked
[v0.2.0-rc.4] 2024-04-23
Changed
- The
parse_for_ccsds_space_packets
method now expects a non-mutable slice and does not copy broken tail packets anymore. It also does not expect a mutablenext_write_idx
argument anymore. Instead, aParseResult
structure is returned which contains thepackets_found
and an optionalincomplete_tail_start
value.
Fixed
parse_for_ccsds_space_packets
did 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::Poll
object 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
spacepackets
v0.11
Added
- Added
params::WritableToBeBytes::to_vec
. - New
ComponentId
(u64
typedef for now) which replaces formerTargetId
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.- Introduced generic
EventMessage
which 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
mio
crate 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
ReceivesTcCore
toPacketSenderRaw
to better show its primary purpose. It now contains asend_raw_tc
method which is not mutable anymore. - Renamed
TmPacketSourceCore
toTmPacketSource
. - Renamed
EcssTmSenderCore
toEcssTmSender
. - Renamed
StoreAddr
toPoolAddr
. - Reanmed
StoreError
toPoolError
. - TCP server generics order. The error generics come last now.
encoding::ccsds::PacketIdValidator
renamed toValidatorU16Id
, which lives in the crate root. It can be used for both CCSDS packet ID and CCSDS APID validation.EventManager::try_event_handling
not expects a mutable error handling closure instead of returning the occured errors.- Renamed
EventManagerBase
toEventReportCreator
- Renamed
VerificationReporterCore
toVerificationReportCreator
. - Removed
VerificationReporterCore
. The high-level API exposed byVerificationReporter
and the low level API exposed byVerificationReportCreator
should be sufficient for all use-cases. - Refactored
EventManager
to heavily use generics instead of trait objects.SendEventProvider
->EventSendProvider
.id
trait method renamed tochannel_id
.ListenerTable
->ListenerMapProvider
SenderTable
->SenderMapProvider
- There is an
EventManagerWithMpsc
and aEventManagerWithBoundedMpsc
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
toWritableToBeBytes::written_len
for consistency. PusServiceProvider
renamed toPusServiceDistributor
to make the purpose of the object more clearPusServiceProvider::handle_pus_tc_packet
renamed toPusServiceDistributor::distribute_packet
.PusServiceDistibutor
andCcsdsDistributor
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
byComponentId
. - Replace most usages of
ChannelId
byComponentId
. A dedicated channel ID has limited usage due to the nature of typed channels in Rust. CheckTimer
renamed toCountdownProvider
.- Renamed
TargetId
toComponentId
. - Replaced most
ChannelId
occurences withComponentId
. For typed channels, there is generally no need for dedicated channel IDs. - Changed
params::WritableToBeBytes::raw_len
towritten_len
for consistency. EventReporter
caches component ID.- Renamed
PusService11SchedHandler
toPusSchedServiceHandler
. - Fixed general naming of PUS handlers from
handle_one_tc
topoll_and_handle_next_tc
. - Reworked verification module: The sender (
impl EcssTmSenderCore
) now needs to be passed explicitely to theVerificationReportingProvider
abstraction. This allows easier sharing of the TM sender component.
Fixed
- Update deprecated API for
PusScheduler::insert_wrapped_tc_cds_short
andPusScheduler::insert_wrapped_tc_cds_long
. EventReporter
uses interior mutability pattern to allow non-mutable API.
Removed
- Remove
objects
module. - 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
VerificationReportingProvider
abstraction to avoid relying on a concrete verification reporting provider.
Changed
- Verification reporter API timestamp arguments are not
Option
al 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.