51 lines
1.0 KiB
Rust
Raw Normal View History

2023-08-05 18:51:50 +02:00
use crc::{Crc, CRC_32_CKSUM};
2023-08-11 12:44:24 +02:00
use spacepackets::util::UnsignedByteField;
2023-08-05 18:51:50 +02:00
2023-07-21 20:23:24 +02:00
pub mod dest;
2023-08-11 12:44:24 +02:00
pub mod user;
#[derive(Debug, PartialEq, Eq, Copy, Clone)]
pub struct TransactionId {
source_id: UnsignedByteField,
seq_num: UnsignedByteField,
}
impl TransactionId {
pub fn new(source_id: UnsignedByteField, seq_num: UnsignedByteField) -> Self {
Self { source_id, seq_num }
}
pub fn source_id(&self) -> &UnsignedByteField {
&self.source_id
}
pub fn seq_num(&self) -> &UnsignedByteField {
&self.seq_num
}
}
2023-07-21 20:23:24 +02:00
2023-07-26 22:27:02 +02:00
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
2023-07-21 20:23:24 +02:00
pub enum TransactionStep {
Idle = 0,
TransactionStart = 1,
ReceivingFileDataPdus = 2,
SendingAckPdu = 3,
TransferCompletion = 4,
2023-07-21 21:36:21 +02:00
SendingFinishedPdu = 5,
2023-07-21 20:23:24 +02:00
}
2023-07-26 22:27:02 +02:00
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
2023-07-21 20:23:24 +02:00
pub enum State {
Idle = 0,
BusyClass1Nacked = 2,
BusyClass2Acked = 3,
}
2023-08-05 18:51:50 +02:00
pub const CRC_32: Crc<u32> = Crc::<u32>::new(&CRC_32_CKSUM);
2023-07-21 20:23:24 +02:00
#[cfg(test)]
mod tests {
#[test]
2023-07-21 21:36:21 +02:00
fn basic_test() {}
2023-07-21 20:23:24 +02:00
}