SEDSnet 4.2.0

A memory safe, no_std-capable networking stack with routing, discovery, reliability, and Rust/C/Python bindings.
Documentation
use crate::timesync::{
    build_timesync_request, build_timesync_response, compute_offset_delay, decode_timesync_request,
    decode_timesync_response,
};

#[test]
fn timesync_request_roundtrip() {
    let pkt = build_timesync_request(7, 1234).unwrap();
    let decoded = decode_timesync_request(&pkt).unwrap();
    assert_eq!(decoded.seq, 7);
    assert_eq!(decoded.t1_ms, 1234);
}

#[test]
fn timesync_response_roundtrip() {
    let pkt = build_timesync_response(9, 100, 110, 115).unwrap();
    let decoded = decode_timesync_response(&pkt).unwrap();
    assert_eq!(decoded.seq, 9);
    assert_eq!(decoded.t1_ms, 100);
    assert_eq!(decoded.t2_ms, 110);
    assert_eq!(decoded.t3_ms, 115);
}

#[test]
fn timesync_offset_delay_math() {
    let sample = compute_offset_delay(10, 20, 30, 40);
    assert_eq!(sample.offset_ms, 0);
    assert_eq!(sample.delay_ms, 20);
}