From 2d62d4a61b761873e8c26296d349540506469316 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 26 Sep 2023 17:18:22 +0200 Subject: [PATCH 1/4] bump spacepackets --- satrs-core/Cargo.toml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/satrs-core/Cargo.toml b/satrs-core/Cargo.toml index 4b75576..8affc47 100644 --- a/satrs-core/Cargo.toml +++ b/satrs-core/Cargo.toml @@ -72,10 +72,9 @@ features = ["all"] optional = true [dependencies.spacepackets] -# version = "0.7.0-beta.1" -# path = "../../spacepackets" -git = "https://egit.irs.uni-stuttgart.de/rust/spacepackets.git" -rev = "79d26e1a6" +version = "0.7.0-beta.2" +# git = "https://egit.irs.uni-stuttgart.de/rust/spacepackets.git" +# rev = "79d26e1a6" # branch = "" default-features = false -- 2.43.0 From 338243b228231718738b59c8646ea6ce9ef874de Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 26 Sep 2023 17:26:42 +0200 Subject: [PATCH 2/4] use new spacepackets API --- .../src/hal/std/tcp_spacepackets_server.rs | 34 +++++-------------- satrs-core/tests/tcp_servers.rs | 31 ++++++++--------- 2 files changed, 23 insertions(+), 42 deletions(-) diff --git a/satrs-core/src/hal/std/tcp_spacepackets_server.rs b/satrs-core/src/hal/std/tcp_spacepackets_server.rs index b9fc86b..42c61e9 100644 --- a/satrs-core/src/hal/std/tcp_spacepackets_server.rs +++ b/satrs-core/src/hal/std/tcp_spacepackets_server.rs @@ -220,13 +220,10 @@ mod tests { }); let mut sph = SpHeader::tc_unseg(TEST_APID_0, 0, 0).unwrap(); let ping_tc = PusTcCreator::new_simple(&mut sph, 17, 1, None, true); - let mut buffer: [u8; 32] = [0; 32]; - let packet_len_ping = ping_tc - .write_to_bytes(&mut buffer) - .expect("writing packet failed"); + let tc_0 = ping_tc.to_vec().expect("packet generation failed"); let mut stream = TcpStream::connect(dest_addr).expect("connecting to TCP server failed"); stream - .write_all(&buffer[..packet_len_ping]) + .write_all(&tc_0) .expect("writing to TCP server failed"); drop(stream); @@ -242,12 +239,11 @@ mod tests { // Check that TC has arrived. let mut tc_queue = tc_receiver.tc_queue.lock().unwrap(); assert_eq!(tc_queue.len(), 1); - assert_eq!(tc_queue.pop_front().unwrap(), buffer[..packet_len_ping]); + assert_eq!(tc_queue.pop_front().unwrap(), tc_0); } #[test] fn test_multi_tc_multi_tm() { - let mut buffer: [u8; 32] = [0; 32]; let auto_port_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 0); let tc_receiver = SyncTcCacher::default(); let mut tm_source = SyncTmSource::default(); @@ -256,19 +252,13 @@ mod tests { let mut total_tm_len = 0; let mut sph = SpHeader::tc_unseg(TEST_APID_0, 0, 0).unwrap(); let verif_tm = PusTcCreator::new_simple(&mut sph, 1, 1, None, true); - let tm_packet_len = verif_tm - .write_to_bytes(&mut buffer) - .expect("writing packet failed"); - total_tm_len += tm_packet_len; - let tm_0 = buffer[..tm_packet_len].to_vec(); + let tm_0 = verif_tm.to_vec().expect("writing packet failed"); + total_tm_len += tm_0.len(); tm_source.add_tm(&tm_0); let mut sph = SpHeader::tc_unseg(TEST_APID_1, 0, 0).unwrap(); let verif_tm = PusTcCreator::new_simple(&mut sph, 1, 3, None, true); - let tm_packet_len = verif_tm - .write_to_bytes(&mut buffer) - .expect("writing packet failed"); - total_tm_len += tm_packet_len; - let tm_1 = buffer[..tm_packet_len].to_vec(); + let tm_1 = verif_tm.to_vec().expect("writing packet failed"); + total_tm_len += tm_1.len(); tm_source.add_tm(&tm_1); // Set up server @@ -309,19 +299,13 @@ mod tests { // Send telecommands let mut sph = SpHeader::tc_unseg(TEST_APID_0, 0, 0).unwrap(); let ping_tc = PusTcCreator::new_simple(&mut sph, 17, 1, None, true); - let packet_len = ping_tc - .write_to_bytes(&mut buffer) - .expect("writing packet failed"); - let tc_0 = buffer[..packet_len].to_vec(); + let tc_0 = ping_tc.to_vec().expect("ping tc creation failed"); stream .write_all(&tc_0) .expect("writing to TCP server failed"); let mut sph = SpHeader::tc_unseg(TEST_APID_1, 0, 0).unwrap(); let action_tc = PusTcCreator::new_simple(&mut sph, 8, 0, None, true); - let packet_len = action_tc - .write_to_bytes(&mut buffer) - .expect("writing packet failed"); - let tc_1 = buffer[..packet_len].to_vec(); + let tc_1 = action_tc.to_vec().expect("action tc creation failed"); stream .write_all(&tc_1) .expect("writing to TCP server failed"); diff --git a/satrs-core/tests/tcp_servers.rs b/satrs-core/tests/tcp_servers.rs index b3e7993..d66c1fb 100644 --- a/satrs-core/tests/tcp_servers.rs +++ b/satrs-core/tests/tcp_servers.rs @@ -166,16 +166,12 @@ const TEST_PACKET_ID_0: PacketId = PacketId::const_tc(true, TEST_APID_0); #[test] fn test_ccsds_server() { - let mut buffer: [u8; 32] = [0; 32]; let tc_receiver = SyncTcCacher::default(); let mut tm_source = SyncTmSource::default(); let mut sph = SpHeader::tc_unseg(TEST_APID_0, 0, 0).unwrap(); let verif_tm = PusTcCreator::new_simple(&mut sph, 1, 1, None, true); - let tm_packet_len = verif_tm - .write_to_bytes(&mut buffer) - .expect("writing packet failed"); - tm_source.add_tm(&buffer[..tm_packet_len]); - let tm_vec = buffer[..tm_packet_len].to_vec(); + let tm_0 = verif_tm.to_vec().expect("tm generation failed"); + tm_source.add_tm(&tm_0); let mut packet_id_lookup = HashSet::new(); packet_id_lookup.insert(TEST_PACKET_ID_0); let mut tcp_server = TcpSpacepacketsServer::new( @@ -202,29 +198,30 @@ fn test_ccsds_server() { set_if_done.store(true, Ordering::Relaxed); }); let mut stream = TcpStream::connect(dest_addr).expect("connecting to TCP server failed"); - let mut sph = SpHeader::tc_unseg(TEST_APID_0, 0, 0).unwrap(); - let ping_tc = PusTcCreator::new_simple(&mut sph, 17, 1, None, true); stream .set_read_timeout(Some(Duration::from_millis(10))) .expect("setting reas timeout failed"); - let packet_len = ping_tc - .write_to_bytes(&mut buffer) - .expect("writing packet failed"); - stream - .write_all(&buffer[..packet_len]) - .expect("writing to TCP server failed"); + // Send ping telecommand. + let mut sph = SpHeader::tc_unseg(TEST_APID_0, 0, 0).unwrap(); + let ping_tc = PusTcCreator::new_simple(&mut sph, 17, 1, None, true); + let tc_0 = ping_tc.to_vec().expect("packet creation failed"); + stream + .write_all(&tc_0) + .expect("writing to TCP server failed"); // Done with writing. stream .shutdown(std::net::Shutdown::Write) .expect("shutting down write failed"); + + // Now read all the telemetry from the server. let mut read_buf: [u8; 16] = [0; 16]; let mut read_len_total = 0; // Timeout ensures this does not block forever. - while read_len_total < tm_packet_len { + while read_len_total < tm_0.len() { let read_len = stream.read(&mut read_buf).expect("read failed"); read_len_total += read_len; - assert_eq!(read_buf[..read_len], tm_vec); + assert_eq!(read_buf[..read_len], tm_0); } drop(stream); @@ -240,5 +237,5 @@ fn test_ccsds_server() { // Check that TC has arrived. let mut tc_queue = tc_receiver.tc_queue.lock().unwrap(); assert_eq!(tc_queue.len(), 1); - assert_eq!(tc_queue.pop_front().unwrap(), buffer[..packet_len]); + assert_eq!(tc_queue.pop_front().unwrap(), tc_0); } -- 2.43.0 From ecf5ebaf2f256c516201fbbd8dff4e0933e4947f Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 26 Sep 2023 17:30:41 +0200 Subject: [PATCH 3/4] bump satrs-core alpha version --- satrs-core/Cargo.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/satrs-core/Cargo.toml b/satrs-core/Cargo.toml index 8affc47..2db74a8 100644 --- a/satrs-core/Cargo.toml +++ b/satrs-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "satrs-core" -version = "0.1.0-alpha.0" +version = "0.1.0-alpha.1" edition = "2021" rust-version = "1.61" authors = ["Robin Mueller "] @@ -15,6 +15,7 @@ categories = ["aerospace", "aerospace::space-protocols", "no-std", "hardware-sup [dependencies] delegate = ">0.7, <=0.10" paste = "1" +# TODO: Remove this as soon as the image including the description was moved to the satrs-book. embed-doc-image = "0.1" [dependencies.smallvec] @@ -73,10 +74,10 @@ optional = true [dependencies.spacepackets] version = "0.7.0-beta.2" +default-features = false # git = "https://egit.irs.uni-stuttgart.de/rust/spacepackets.git" # rev = "79d26e1a6" # branch = "" -default-features = false [dependencies.cobs] git = "https://github.com/robamu/cobs.rs.git" -- 2.43.0 From 9bec69291bd2612ee096b431458a31ac3d97c518 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 26 Sep 2023 17:31:48 +0200 Subject: [PATCH 4/4] re-point MIB dependency to satrs-core --- satrs-mib/Cargo.toml | 6 +++--- satrs-mib/codegen/Cargo.toml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/satrs-mib/Cargo.toml b/satrs-mib/Cargo.toml index cdfa4f5..99fc71b 100644 --- a/satrs-mib/Cargo.toml +++ b/satrs-mib/Cargo.toml @@ -23,9 +23,9 @@ version = "1" optional = true [dependencies.satrs-core] -# version = "0.1.0-alpha.0" -git = "https://egit.irs.uni-stuttgart.de/rust/sat-rs.git" -rev = "35e1f7a983f6535c5571186e361fe101d4306b89" +version = "0.1.0-alpha.1" +# git = "https://egit.irs.uni-stuttgart.de/rust/sat-rs.git" +# rev = "35e1f7a983f6535c5571186e361fe101d4306b89" [dependencies.satrs-mib-codegen] path = "codegen" diff --git a/satrs-mib/codegen/Cargo.toml b/satrs-mib/codegen/Cargo.toml index db6a671..cf3b70f 100644 --- a/satrs-mib/codegen/Cargo.toml +++ b/satrs-mib/codegen/Cargo.toml @@ -20,9 +20,9 @@ quote = "1" proc-macro2 = "1" [dependencies.satrs-core] -# version = "0.1.0-alpha.0" -git = "https://egit.irs.uni-stuttgart.de/rust/sat-rs.git" -rev = "35e1f7a983f6535c5571186e361fe101d4306b89" +version = "0.1.0-alpha.1" +# git = "https://egit.irs.uni-stuttgart.de/rust/sat-rs.git" +# rev = "35e1f7a983f6535c5571186e361fe101d4306b89" [dev-dependencies] trybuild = { version = "1", features = ["diff"] } -- 2.43.0