something still wrong with no_std build
Some checks failed
Rust/sat-rs/pipeline/pr-main There was a failure building this commit
Some checks failed
Rust/sat-rs/pipeline/pr-main There was a failure building this commit
This commit is contained in:
parent
fa87160775
commit
e25a71b223
@ -11,7 +11,7 @@ pub enum SpacePacketValidation {
|
|||||||
/// The space packet or space packet header has an invalid format, for example a CRC check
|
/// The space packet or space packet header has an invalid format, for example a CRC check
|
||||||
/// failed. In that case, the parser loses the packet synchronization and needs to check for
|
/// failed. In that case, the parser loses the packet synchronization and needs to check for
|
||||||
/// the start of a new space packet header start again. The space packet header
|
/// the start of a new space packet header start again. The space packet header
|
||||||
/// [spacepackets::PacketId] can be used as a synchronization marker to detect the start
|
/// [spacepackets::PacketId] can be used as a synchronization marker to detect the start
|
||||||
/// of a possible valid packet again.
|
/// of a possible valid packet again.
|
||||||
Invalid,
|
Invalid,
|
||||||
}
|
}
|
||||||
|
@ -192,46 +192,6 @@ pub trait PusTmPool {
|
|||||||
fn add_pus_tm_from_creator(&mut self, pus_tm: &PusTmCreator) -> Result<PoolAddr, PoolError>;
|
fn add_pus_tm_from_creator(&mut self, pus_tm: &PusTmCreator) -> Result<PoolAddr, PoolError>;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl PusTcPool for SharedPacketPool {
|
|
||||||
fn add_pus_tc(&mut self, pus_tc: &PusTcReader) -> Result<PoolAddr, PoolError> {
|
|
||||||
let mut pg = self.0.write().map_err(|_| PoolError::LockError)?;
|
|
||||||
let addr = pg.free_element(pus_tc.len_packed(), |buf| {
|
|
||||||
buf[0..pus_tc.len_packed()].copy_from_slice(pus_tc.raw_data());
|
|
||||||
})?;
|
|
||||||
Ok(addr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl PusTmPool for SharedPacketPool {
|
|
||||||
fn add_pus_tm_from_reader(&mut self, pus_tm: &PusTmReader) -> Result<PoolAddr, PoolError> {
|
|
||||||
let mut pg = self.0.write().map_err(|_| PoolError::LockError)?;
|
|
||||||
let addr = pg.free_element(pus_tm.len_packed(), |buf| {
|
|
||||||
buf[0..pus_tm.len_packed()].copy_from_slice(pus_tm.raw_data());
|
|
||||||
})?;
|
|
||||||
Ok(addr)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn add_pus_tm_from_creator(&mut self, pus_tm: &PusTmCreator) -> Result<PoolAddr, PoolError> {
|
|
||||||
let mut pg = self.0.write().map_err(|_| PoolError::LockError)?;
|
|
||||||
let mut result = Ok(0);
|
|
||||||
let addr = pg.free_element(pus_tm.len_written(), |buf| {
|
|
||||||
result = pus_tm.write_to_bytes(buf);
|
|
||||||
})?;
|
|
||||||
result?;
|
|
||||||
Ok(addr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl CcsdsPacketPool for SharedPacketPool {
|
|
||||||
fn add_raw_tc(&mut self, tc_raw: &[u8]) -> Result<PoolAddr, PoolError> {
|
|
||||||
let mut pg = self.0.write().map_err(|_| PoolError::LockError)?;
|
|
||||||
let addr = pg.free_element(tc_raw.len(), |buf| {
|
|
||||||
buf[0..tc_raw.len()].copy_from_slice(tc_raw);
|
|
||||||
})?;
|
|
||||||
Ok(addr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Generic trait for any sender component able to send packets stored inside a pool structure.
|
/// Generic trait for any sender component able to send packets stored inside a pool structure.
|
||||||
pub trait PacketInPoolSender: Send {
|
pub trait PacketInPoolSender: Send {
|
||||||
fn send_packet(
|
fn send_packet(
|
||||||
@ -283,6 +243,49 @@ pub mod std_mod {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl PusTcPool for SharedPacketPool {
|
||||||
|
fn add_pus_tc(&mut self, pus_tc: &PusTcReader) -> Result<PoolAddr, PoolError> {
|
||||||
|
let mut pg = self.0.write().map_err(|_| PoolError::LockError)?;
|
||||||
|
let addr = pg.free_element(pus_tc.len_packed(), |buf| {
|
||||||
|
buf[0..pus_tc.len_packed()].copy_from_slice(pus_tc.raw_data());
|
||||||
|
})?;
|
||||||
|
Ok(addr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl PusTmPool for SharedPacketPool {
|
||||||
|
fn add_pus_tm_from_reader(&mut self, pus_tm: &PusTmReader) -> Result<PoolAddr, PoolError> {
|
||||||
|
let mut pg = self.0.write().map_err(|_| PoolError::LockError)?;
|
||||||
|
let addr = pg.free_element(pus_tm.len_packed(), |buf| {
|
||||||
|
buf[0..pus_tm.len_packed()].copy_from_slice(pus_tm.raw_data());
|
||||||
|
})?;
|
||||||
|
Ok(addr)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn add_pus_tm_from_creator(
|
||||||
|
&mut self,
|
||||||
|
pus_tm: &PusTmCreator,
|
||||||
|
) -> Result<PoolAddr, PoolError> {
|
||||||
|
let mut pg = self.0.write().map_err(|_| PoolError::LockError)?;
|
||||||
|
let mut result = Ok(0);
|
||||||
|
let addr = pg.free_element(pus_tm.len_written(), |buf| {
|
||||||
|
result = pus_tm.write_to_bytes(buf);
|
||||||
|
})?;
|
||||||
|
result?;
|
||||||
|
Ok(addr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CcsdsPacketPool for SharedPacketPool {
|
||||||
|
fn add_raw_tc(&mut self, tc_raw: &[u8]) -> Result<PoolAddr, PoolError> {
|
||||||
|
let mut pg = self.0.write().map_err(|_| PoolError::LockError)?;
|
||||||
|
let addr = pg.free_element(tc_raw.len(), |buf| {
|
||||||
|
buf[0..tc_raw.len()].copy_from_slice(tc_raw);
|
||||||
|
})?;
|
||||||
|
Ok(addr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(feature = "std")]
|
#[cfg(feature = "std")]
|
||||||
impl PacketSenderRaw for mpsc::Sender<PacketAsVec> {
|
impl PacketSenderRaw for mpsc::Sender<PacketAsVec> {
|
||||||
type Error = GenericSendError;
|
type Error = GenericSendError;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user