continue test verification handler

This commit is contained in:
Robin Müller 2024-02-17 14:36:22 +01:00
parent d7be5224f1
commit 5d51d40371
Signed by: muellerr
GPG Key ID: A649FB78196E3849
7 changed files with 31 additions and 18 deletions

View File

@ -18,7 +18,8 @@ default-features = false
optional = true optional = true
[dependencies.spacepackets] [dependencies.spacepackets]
version = "0.9" version = "0.10"
git = "https://github.com/us-irs/spacepackets-rs.git"
default-features = false default-features = false
[features] [features]

View File

@ -52,6 +52,10 @@ impl UnsignedEnum for ResultU16 {
buf[1] = self.unique_id; buf[1] = self.unique_id;
Ok(self.size()) Ok(self.size())
} }
fn value(&self) -> u64 {
self.raw() as u64
}
} }
impl EcssEnumeration for ResultU16 { impl EcssEnumeration for ResultU16 {

View File

@ -17,7 +17,10 @@ delegate = ">0.7, <=0.10"
paste = "1" paste = "1"
smallvec = "1" smallvec = "1"
crc = "3" crc = "3"
satrs-shared = "0.1.1"
[dependencies.satrs-shared]
# version = "0.1.1"
path = "../satrs-shared"
[dependencies.num_enum] [dependencies.num_enum]
version = ">0.5, <=0.7" version = ">0.5, <=0.7"
@ -68,7 +71,8 @@ features = ["all"]
optional = true optional = true
[dependencies.spacepackets] [dependencies.spacepackets]
version = "0.9" version = "0.10"
git = "https://github.com/us-irs/spacepackets-rs.git"
default-features = false default-features = false
[dependencies.cobs] [dependencies.cobs]

View File

@ -23,7 +23,7 @@ use spacepackets::{
tlv::{msg_to_user::MsgToUserTlv, EntityIdTlv, GenericTlv, TlvType}, tlv::{msg_to_user::MsgToUserTlv, EntityIdTlv, GenericTlv, TlvType},
ChecksumType, ConditionCode, FaultHandlerCode, PduType, TransmissionMode, ChecksumType, ConditionCode, FaultHandlerCode, PduType, TransmissionMode,
}, },
util::UnsignedByteField, util::{UnsignedByteField, UnsignedEnum},
}; };
use thiserror::Error; use thiserror::Error;

View File

@ -9,7 +9,7 @@ use spacepackets::{
pdu::{FileDirectiveType, PduError, PduHeader}, pdu::{FileDirectiveType, PduError, PduHeader},
ChecksumType, ConditionCode, FaultHandlerCode, PduType, TransmissionMode, ChecksumType, ConditionCode, FaultHandlerCode, PduType, TransmissionMode,
}, },
util::UnsignedByteField, util::{UnsignedByteField, UnsignedEnum},
}; };
#[cfg(feature = "alloc")] #[cfg(feature = "alloc")]

View File

@ -412,6 +412,10 @@ impl UnsignedEnum for EventU32 {
fn write_to_be_bytes(&self, buf: &mut [u8]) -> Result<usize, ByteConversionError> { fn write_to_be_bytes(&self, buf: &mut [u8]) -> Result<usize, ByteConversionError> {
self.base.write_to_bytes(self.raw(), buf, self.size()) self.base.write_to_bytes(self.raw(), buf, self.size())
} }
fn value(&self) -> u64 {
self.raw().into()
}
} }
impl EcssEnumeration for EventU32 { impl EcssEnumeration for EventU32 {
@ -425,6 +429,7 @@ impl<SEVERITY: HasSeverity> UnsignedEnum for EventU32TypedSev<SEVERITY> {
delegate!(to self.event { delegate!(to self.event {
fn size(&self) -> usize; fn size(&self) -> usize;
fn write_to_be_bytes(&self, buf: &mut [u8]) -> Result<usize, ByteConversionError>; fn write_to_be_bytes(&self, buf: &mut [u8]) -> Result<usize, ByteConversionError>;
fn value(&self) -> u64;
}); });
} }
@ -560,6 +565,10 @@ impl UnsignedEnum for EventU16 {
fn write_to_be_bytes(&self, buf: &mut [u8]) -> Result<usize, ByteConversionError> { fn write_to_be_bytes(&self, buf: &mut [u8]) -> Result<usize, ByteConversionError> {
self.base.write_to_bytes(self.raw(), buf, self.size()) self.base.write_to_bytes(self.raw(), buf, self.size())
} }
fn value(&self) -> u64 {
self.raw().into()
}
} }
impl EcssEnumeration for EventU16 { impl EcssEnumeration for EventU16 {
#[inline] #[inline]
@ -573,6 +582,7 @@ impl<SEVERITY: HasSeverity> UnsignedEnum for EventU16TypedSev<SEVERITY> {
delegate!(to self.event { delegate!(to self.event {
fn size(&self) -> usize; fn size(&self) -> usize;
fn write_to_be_bytes(&self, buf: &mut [u8]) -> Result<usize, ByteConversionError>; fn write_to_be_bytes(&self, buf: &mut [u8]) -> Result<usize, ByteConversionError>;
fn value(&self) -> u64;
}); });
} }

View File

@ -1430,11 +1430,11 @@ pub mod tests {
pub struct VerificationStatus { pub struct VerificationStatus {
pub accepted: Option<bool>, pub accepted: Option<bool>,
pub started: Option<bool>, pub started: Option<bool>,
pub step: u32, pub step: u64,
pub step_status: Option<bool>, pub step_status: Option<bool>,
pub completed: Option<bool>, pub completed: Option<bool>,
pub failure_data: Option<Vec<u8>>, pub failure_data: Option<Vec<u8>>,
pub fail_enum: Option<Vec<u8>>, pub fail_enum: Option<u64>,
} }
#[derive(Default, Clone)] #[derive(Default, Clone)]
@ -1495,8 +1495,7 @@ pub mod tests {
Some(entry) => { Some(entry) => {
entry.accepted = Some(false); entry.accepted = Some(false);
entry.failure_data = params.failure_data.map(|v| v.to_vec()); entry.failure_data = params.failure_data.map(|v| v.to_vec());
// TODO: Enable this after the spacepackets update. entry.fail_enum = Some(params.failure_code.value());
// entry.fail_enum= params.failure_code.to_vec();
} }
None => panic!( None => panic!(
"unexpected acceptance failure for request ID {}", "unexpected acceptance failure for request ID {}",
@ -1535,8 +1534,7 @@ pub mod tests {
Some(entry) => { Some(entry) => {
entry.started = Some(false); entry.started = Some(false);
entry.failure_data = params.failure_data.map(|v| v.to_vec()); entry.failure_data = params.failure_data.map(|v| v.to_vec());
// TODO: Enable this after the spacepackets update. entry.fail_enum = Some(params.failure_code.value());
// entry.fail_enum= params.failure_code.to_vec();
} }
None => panic!("unexpected start failure for request ID {}", token.req_id()), None => panic!("unexpected start failure for request ID {}", token.req_id()),
}; };
@ -1547,13 +1545,12 @@ pub mod tests {
&self, &self,
token: &VerificationToken<super::TcStateStarted>, token: &VerificationToken<super::TcStateStarted>,
_time_stamp: Option<&[u8]>, _time_stamp: Option<&[u8]>,
_step: impl spacepackets::ecss::EcssEnumeration, step: impl spacepackets::ecss::EcssEnumeration,
) -> Result<(), EcssTmtcError> { ) -> Result<(), EcssTmtcError> {
let verif_map = self.verification_map.lock().unwrap(); let verif_map = self.verification_map.lock().unwrap();
match verif_map.borrow_mut().get_mut(&token.req_id) { match verif_map.borrow_mut().get_mut(&token.req_id) {
Some(entry) => { Some(entry) => {
// TODO: Enable this after the spacepackets update. entry.step = step.value();
// entry.step = Some(step.value()),
entry.step_status = Some(true); entry.step_status = Some(true);
} }
None => panic!("unexpected start success for request ID {}", token.req_id()), None => panic!("unexpected start success for request ID {}", token.req_id()),
@ -1569,8 +1566,6 @@ pub mod tests {
let verif_map = self.verification_map.lock().unwrap(); let verif_map = self.verification_map.lock().unwrap();
match verif_map.borrow_mut().get_mut(&token.req_id) { match verif_map.borrow_mut().get_mut(&token.req_id) {
Some(entry) => { Some(entry) => {
// TODO: Enable this after the spacepackets update.
// entry.step = Some(step.value()),
entry.step_status = Some(false); entry.step_status = Some(false);
} }
None => panic!("unexpected start success for request ID {}", token.req_id()), None => panic!("unexpected start success for request ID {}", token.req_id()),
@ -1604,8 +1599,7 @@ pub mod tests {
Some(entry) => { Some(entry) => {
entry.completed = Some(false); entry.completed = Some(false);
entry.failure_data = params.failure_data.map(|v| v.to_vec()); entry.failure_data = params.failure_data.map(|v| v.to_vec());
// TODO: Enable this after the spacepackets update. entry.fail_enum = Some(params.failure_code.value());
// entry.fail_enum= params.failure_code.to_vec();
} }
None => panic!( None => panic!(
"unexpected acceptance success for request ID {}", "unexpected acceptance success for request ID {}",