Add timestamp to SimRequest #140
@ -49,18 +49,18 @@ impl SimController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn run(&mut self, start_time: MonotonicTime, udp_polling_interval_ms: u64) {
|
pub fn run(&mut self, start_time: MonotonicTime, udp_polling_interval_ms: u64) {
|
||||||
let mut t = start_time + Duration::from_millis(udp_polling_interval_ms);
|
let mut t = start_time;
|
||||||
self.sys_clock.synchronize(t);
|
|
||||||
loop {
|
loop {
|
||||||
|
let t_old = t;
|
||||||
// Check for UDP requests every millisecond. Shift the simulator ahead here to prevent
|
// Check for UDP requests every millisecond. Shift the simulator ahead here to prevent
|
||||||
// replies lying in the past.
|
// replies lying in the past.
|
||||||
t += Duration::from_millis(udp_polling_interval_ms);
|
t += Duration::from_millis(udp_polling_interval_ms);
|
||||||
|
self.sys_clock.synchronize(t);
|
||||||
|
self.handle_sim_requests();
|
||||||
self.simulation
|
self.simulation
|
||||||
.step_until(t)
|
.step_until(t)
|
||||||
.expect("simulation step failed");
|
.expect("simulation step failed");
|
||||||
self.handle_sim_requests();
|
|
||||||
|
|
||||||
self.sys_clock.synchronize(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
use asynchronix::time::MonotonicTime;
|
||||||
use serde::{de::DeserializeOwned, Deserialize, Serialize};
|
use serde::{de::DeserializeOwned, Deserialize, Serialize};
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
@ -19,6 +20,7 @@ pub struct SimMessage {
|
|||||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
pub struct SimRequest {
|
pub struct SimRequest {
|
||||||
inner: SimMessage,
|
inner: SimMessage,
|
||||||
|
timestamp: MonotonicTime
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user