make spacepackets no_std
This commit is contained in:
@ -2,13 +2,33 @@
|
||||
name = "spacepackets"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"]
|
||||
description = "Generic implementations for various CCSDS and ECSS packet standards"
|
||||
homepage = "https://egit.irs.uni-stuttgart.de/rust/spacepackets"
|
||||
repository = "https://egit.irs.uni-stuttgart.de/rust/spacepackets"
|
||||
license = "Apache-2.0"
|
||||
keywords = ["no-std", "space", "packets", "ccsds", "ecss"]
|
||||
categories = ["aerospace", "aerospace::space-protocols", "no-std", "hardware-support", "embedded"]
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
num = "0.4"
|
||||
postcard = { version = "0.7.3", features = ["use-std"] }
|
||||
serde = "1.0.137"
|
||||
zerocopy = "0.6.1"
|
||||
crc = "3.0.0"
|
||||
delegate = "0.7.0"
|
||||
|
||||
[dependencies.heapless]
|
||||
version = "0.7.14"
|
||||
optional = true
|
||||
|
||||
[dev-dependencies]
|
||||
|
||||
[dev-dependencies.postcard]
|
||||
version = "0.7.3"
|
||||
features = ["use-std"]
|
||||
|
||||
[features]
|
||||
|
||||
default = ["heapless", "alloc"]
|
||||
alloc = ["serde/alloc"]
|
||||
|
@ -1,7 +1,7 @@
|
||||
use crate::{CcsdsPacket, PacketError};
|
||||
use crc::{Crc, CRC_16_IBM_3740};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::mem::size_of;
|
||||
use core::mem::size_of;
|
||||
|
||||
/// CRC algorithm used by the PUS standard
|
||||
pub const CRC_CCITT_FALSE: Crc<u16> = Crc::<u16>::new(&CRC_16_IBM_3740);
|
||||
|
@ -1,4 +1,7 @@
|
||||
//! # Space related components including CCSDS and ECSS packet standards
|
||||
#![no_std]
|
||||
extern crate alloc;
|
||||
|
||||
use crate::ecss::CCSDS_HEADER_LEN;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
@ -237,7 +240,7 @@ pub trait CcsdsPrimaryHeader {
|
||||
) -> Self;
|
||||
}
|
||||
|
||||
pub mod srd {
|
||||
pub mod ser {
|
||||
use crate::{
|
||||
CcsdsPacket, CcsdsPrimaryHeader, PacketId, PacketSequenceCtrl, PacketType, SequenceFlags,
|
||||
};
|
||||
@ -412,12 +415,13 @@ pub mod zc {
|
||||
}
|
||||
}
|
||||
|
||||
sph_from_other!(SpHeader, crate::srd::SpHeader);
|
||||
sph_from_other!(SpHeader, crate::ser::SpHeader);
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::srd::SpHeader;
|
||||
use alloc::vec;
|
||||
use crate::ser::SpHeader;
|
||||
use crate::{
|
||||
packet_type_in_raw_packet_id, zc, CcsdsPacket, CcsdsPrimaryHeader, PacketId,
|
||||
PacketSequenceCtrl, PacketType, SequenceFlags,
|
||||
|
@ -1,6 +1,6 @@
|
||||
use crate::ecss::PusVersion;
|
||||
use crate::CCSDS_HEADER_LEN;
|
||||
use std::mem::size_of;
|
||||
use core::mem::size_of;
|
||||
|
||||
type CrcType = u16;
|
||||
|
||||
@ -32,7 +32,7 @@ pub trait PusTcSecondaryHeader {
|
||||
|
||||
pub mod zc {
|
||||
use crate::ecss::{PusError, PusVersion};
|
||||
use crate::tc::{srd, PusTcSecondaryHeader};
|
||||
use crate::tc::{ser, PusTcSecondaryHeader};
|
||||
use zerocopy::{AsBytes, FromBytes, NetworkEndian, Unaligned, U16};
|
||||
|
||||
#[derive(FromBytes, AsBytes, Unaligned)]
|
||||
@ -44,9 +44,9 @@ pub mod zc {
|
||||
source_id: U16<NetworkEndian>,
|
||||
}
|
||||
|
||||
impl TryFrom<srd::PusTcDataFieldHeader> for PusTcDataFieldHeader {
|
||||
impl TryFrom<ser::PusTcDataFieldHeader> for PusTcDataFieldHeader {
|
||||
type Error = PusError;
|
||||
fn try_from(value: srd::PusTcDataFieldHeader) -> Result<Self, Self::Error> {
|
||||
fn try_from(value: ser::PusTcDataFieldHeader) -> Result<Self, Self::Error> {
|
||||
if value.version != PusVersion::PusC {
|
||||
return Err(PusError::VersionNotSupported(value.version));
|
||||
}
|
||||
@ -88,9 +88,10 @@ pub mod zc {
|
||||
}
|
||||
}
|
||||
|
||||
pub mod srd {
|
||||
pub mod ser {
|
||||
use alloc::vec::Vec;
|
||||
use crate::ecss::{PusError, PusPacket, PusVersion, CRC_CCITT_FALSE};
|
||||
use crate::srd::SpHeader;
|
||||
use crate::ser::SpHeader;
|
||||
use crate::tc::{
|
||||
PusTcSecondaryHeader, ACK_ALL, PUC_TC_SECONDARY_HEADER_LEN,
|
||||
PUS_TC_MIN_LEN_WITHOUT_APP_DATA, PUS_VERSION,
|
||||
@ -98,7 +99,7 @@ pub mod srd {
|
||||
use crate::{zc, CcsdsPacket, PacketError, PacketId, PacketSequenceCtrl, PacketType};
|
||||
use delegate::delegate;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::mem::size_of;
|
||||
use core::mem::size_of;
|
||||
use zerocopy::AsBytes;
|
||||
|
||||
#[derive(PartialEq, Copy, Clone, Serialize, Deserialize)]
|
||||
@ -392,9 +393,10 @@ pub mod srd {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use alloc::vec::Vec;
|
||||
use crate::ecss::PusPacket;
|
||||
use crate::srd::SpHeader;
|
||||
use crate::tc::srd::PusTc;
|
||||
use crate::ser::SpHeader;
|
||||
use crate::tc::ser::PusTc;
|
||||
use crate::tc::PusTcSecondaryHeader;
|
||||
use crate::tc::ACK_ALL;
|
||||
use crate::{CcsdsPacket, PacketType};
|
||||
|
Reference in New Issue
Block a user