Merge pull request 'Improve CDS timecode implementation' (#3) from improve_cds_short_impl into main
All checks were successful
Rust/spacepackets/pipeline/head This commit looks good

Reviewed-on: #3
This commit is contained in:
Robin Müller 2023-01-09 11:08:11 +01:00
commit 3fb2fbd20c
3 changed files with 894 additions and 189 deletions

View File

@ -8,6 +8,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
# [unreleased] # [unreleased]
## Fixed
- Remove `Default` derive on CDS time provider. This can lead to uninitialized preamble fields.
## Changed ## Changed
- `serde` support is now optional and behind the `serde` feature. - `serde` support is now optional and behind the `serde` feature.
@ -17,6 +21,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
Former `new` method now called `new_from_single_fields`. Former `new` method now called `new_from_single_fields`.
- `SpHeader`: Renamed `from_bytes` to `from_be_bytes`. - `SpHeader`: Renamed `from_bytes` to `from_be_bytes`.
The function now returns the remaining slice as well. The function now returns the remaining slice as well.
- All CDS specific functionality was moved into the `cds` submodule of the `time`
module. `CdsShortTimeProvider` was renamed to `TimeProvider`.
PR: https://egit.irs.uni-stuttgart.de/rust/spacepackets/pulls/3
## Added ## Added
@ -24,14 +31,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
PR: https://egit.irs.uni-stuttgart.de/rust/spacepackets/pulls/5 PR: https://egit.irs.uni-stuttgart.de/rust/spacepackets/pulls/5
- Added `std::error::Error` implementation for all error enumerations if the `std` feature - Added `std::error::Error` implementation for all error enumerations if the `std` feature
is enabled. is enabled.
- ACII timestamps as specified in CCSDS 301.0-B-4. - ACII timestamps as specified in CCSDS 301.0-B-4 section 3.5.
- Added MSRV in `Cargo.toml` with the `rust-version` field set to Rust 1.60. - Added MSRV in `Cargo.toml` with the `rust-version` field set to Rust 1.60.
- ACII timestamps as specified in CCSDS 301.0-B-4
- `serde` `Serialize` and `Deserialize` added to all types. - `serde` `Serialize` and `Deserialize` added to all types.
- Added `const` constructors for `PacketId`, `PacketSeqCtrl` and - Added `const` constructors for `PacketId`, `PacketSeqCtrl` and
`SpHeader`. `SpHeader`.
- Added `PartialEq` and `Eq` `derive`s to `CdsShortTimeProvider`. - Added `PartialEq` and `Eq` `derive`s to `TimeProvider`.
- `SpHeader`: Added serialization function into raw format `write_to_be_bytes`. - `SpHeader`: Added serialization function into raw format `write_to_be_bytes`.
- Added 24-bit day field support for CDS short. The bit width is configured at type level
via a generic parameter type passed to the `cds::TimeProvider`
- Added submillisecond precision support for `cds::TimeProvider`
# [v0.3.1] 03.12.2022 # [v0.3.1] 03.12.2022

View File

@ -71,6 +71,10 @@ pub mod tc;
pub mod time; pub mod time;
pub mod tm; pub mod tm;
mod private {
pub trait Sealed {}
}
pub const MAX_APID: u16 = 2u16.pow(11) - 1; pub const MAX_APID: u16 = 2u16.pow(11) - 1;
pub const MAX_SEQ_COUNT: u16 = 2u16.pow(14) - 1; pub const MAX_SEQ_COUNT: u16 = 2u16.pow(14) - 1;

File diff suppressed because it is too large Load Diff