1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
use std::time::Duration as StdDuration;
pub mod rtps;
pub mod parameter_id_values;
pub type Duration = StdDuration;
#[cfg(test)]
mod integration_test {
use std::sync::Arc;
use crate::rtps::messages::overall_structure::RtpsMessageRead;
#[test]
fn test_example_read() {
#[rustfmt::skip]
let data = Arc::new([
b'R', b'T', b'P', b'S', // Protocol
2, 3, 9, 8, // ProtocolVersion | VendorId
3, 3, 3, 3, // GuidPrefix
3, 3, 3, 3, // GuidPrefix
3, 3, 3, 3, // GuidPrefix
0x15, 0b_0000_0011, 40, 0, // Submessage header
0, 0, 16, 0, // extraFlags, octetsToInlineQos
1, 2, 3, 4, // readerId: value[4]
6, 7, 8, 9, // writerId: value[4]
0, 0, 0, 0, // writerSN: high
5, 0, 0, 0, // writerSN: low
6, 0, 4, 0, // inlineQos: parameterId_1, length_1
10, 11, 12, 13, // inlineQos: value_1[length_1]
7, 0, 4, 0, // inlineQos: parameterId_2, length_2
20, 21, 22, 23, // inlineQos: value_2[length_2]
1, 0, 1, 0, // inlineQos: Sentinel
0x07, 0b_0000_0101, 28, 0, // Submessage header
1, 2, 3, 4, // readerId: value[4]
6, 7, 8, 9, // writerId: value[4]
0, 0, 0, 0, // firstSN: SequenceNumber: high
5, 0, 0, 0, // firstSN: SequenceNumber: low
0, 0, 0, 0, // lastSN: SequenceNumberSet: high
7, 0, 0, 0, // lastSN: SequenceNumberSet: low
2, 0, 0, 0, // count: Count: value (long)
]);
let msg = RtpsMessageRead::new(data);
println!("Received {} submessages", msg.submessages().len());
}
}