diff --git a/README.md b/README.md index e90f2c9..6c5a01e 100644 --- a/README.md +++ b/README.md @@ -158,7 +158,7 @@ For a detailed output of the results, please enable the corresponding flag like: ## Group config file Databroker-perf creates two new gRPC channels for each group: one for the provider and one for the subscriber. -Each provider will update its group signal values to the Databroker at the cycle time specified (in milliseconds) in the JSON configuration file provided. +Each provider will update its group signal values to the Databroker at the cycle time specified (in microseconds) in the JSON configuration file provided. i. e. ``` @@ -166,7 +166,7 @@ i. e. "groups": [ { "group_name": "Frame 1", - "cycle_time_ms": 10, + "cycle_time_microseconds": 1000, "signals": [ { "path": "Vehicle.Speed" @@ -175,7 +175,7 @@ i. e. }, { "group_name": "Frame 2", - "cycle_time_ms": 20, + "cycle_time_microseconds": 2000, "signals": [ { "path": "Vehicle.IsBrokenDown" diff --git a/data/data_group_1.json b/data/data_group_1.json index d2f1916..2eadb63 100644 --- a/data/data_group_1.json +++ b/data/data_group_1.json @@ -2,7 +2,7 @@ "groups": [ { "group_name": "Frame 1", - "cycle_time_ms": 10, + "cycle_time_microseconds": 500, "signals": [ { "path": "Vehicle.Speed" diff --git a/data/data_group_10.json b/data/data_group_10.json index bdfaddf..24c7643 100644 --- a/data/data_group_10.json +++ b/data/data_group_10.json @@ -2,7 +2,7 @@ "groups": [ { "group_name": "Frame 1", - "cycle_time_ms": 10, + "cycle_time_microseconds": 200, "signals": [ { "path": "Vehicle.Speed" @@ -11,7 +11,7 @@ }, { "group_name": "Frame 2", - "cycle_time_ms": 20, + "cycle_time_microseconds": 300, "signals": [ { "path": "Vehicle.IsBrokenDown" @@ -26,7 +26,7 @@ }, { "group_name": "Frame 3", - "cycle_time_ms": 30, + "cycle_time_microseconds": 400, "signals": [ { "path": "Vehicle.Powertrain.CombustionEngine.MAP" @@ -44,7 +44,7 @@ }, { "group_name": "Frame 4", - "cycle_time_ms": 40, + "cycle_time_microseconds": 500, "signals": [ { "path": "Vehicle.Body.Windshield.Front.Wiping.System.IsWiping" @@ -62,7 +62,7 @@ }, { "group_name": "Frame 5", - "cycle_time_ms": 50, + "cycle_time_microseconds": 600, "signals": [ { "path": "Vehicle.Body.Windshield.Front.Wiping.System.IsBlocked" @@ -80,7 +80,7 @@ }, { "group_name": "Frame 6", - "cycle_time_ms": 60, + "cycle_time_microseconds": 700, "signals": [ { "path": "Vehicle.Body.Windshield.Front.WasherFluid.Level" @@ -101,7 +101,7 @@ }, { "group_name": "Frame 7", - "cycle_time_ms": 70, + "cycle_time_microseconds": 800, "signals": [ { "path": "Vehicle.Body.Windshield.Rear.Wiping.System.IsPositionReached" @@ -122,7 +122,7 @@ }, { "group_name": "Frame 8", - "cycle_time_ms": 80, + "cycle_time_microseconds": 900, "signals": [ { "path": "Vehicle.Body.Windshield.Front.Wiping.System.TargetPosition" @@ -143,7 +143,7 @@ }, { "group_name": "Frame 9", - "cycle_time_ms": 90, + "cycle_time_microseconds": 1000, "signals": [ { "path": "Vehicle.Body.Windshield.Rear.Wiping.System.TargetPosition" @@ -170,7 +170,7 @@ }, { "group_name": "Frame 10", - "cycle_time_ms": 100, + "cycle_time_microseconds": 1100, "signals": [ { "path": "Vehicle.Body.Lights.Backup.IsOn" diff --git a/data/data_group_2.json b/data/data_group_2.json index a155736..104abe9 100644 --- a/data/data_group_2.json +++ b/data/data_group_2.json @@ -2,7 +2,7 @@ "groups": [ { "group_name": "Frame 1", - "cycle_time_ms": 10, + "cycle_time_microseconds": 500, "signals": [ { "path": "Vehicle.Speed" @@ -11,16 +11,10 @@ }, { "group_name": "Frame 2", - "cycle_time_ms": 20, + "cycle_time_microseconds": 1000, "signals": [ { "path": "Vehicle.IsBrokenDown" - }, - { - "path": "Vehicle.IsMoving" - }, - { - "path": "Vehicle.AverageSpeed" } ] } diff --git a/data/data_group_3.json b/data/data_group_3.json index 911dacf..021ea95 100644 --- a/data/data_group_3.json +++ b/data/data_group_3.json @@ -2,7 +2,7 @@ "groups": [ { "group_name": "Frame 1", - "cycle_time_ms": 10, + "cycle_time_microseconds": 500, "signals": [ { "path": "Vehicle.Speed" @@ -11,7 +11,7 @@ }, { "group_name": "Frame 2", - "cycle_time_ms": 20, + "cycle_time_microseconds": 1000, "signals": [ { "path": "Vehicle.IsBrokenDown" @@ -26,7 +26,7 @@ }, { "group_name": "Frame 3", - "cycle_time_ms": 30, + "cycle_time_microseconds": 1500, "signals": [ { "path": "Vehicle.Powertrain.CombustionEngine.MAP" diff --git a/src/config.rs b/src/config.rs index 1cd4541..34263c1 100644 --- a/src/config.rs +++ b/src/config.rs @@ -21,7 +21,7 @@ pub struct Config { #[derive(Deserialize, Clone)] pub struct Group { pub group_name: String, - pub cycle_time_ms: u16, + pub cycle_time_microseconds: u32, pub signals: Vec, } #[derive(Deserialize, Clone)] diff --git a/src/measure.rs b/src/measure.rs index 94d279d..f227d07 100644 --- a/src/measure.rs +++ b/src/measure.rs @@ -55,7 +55,7 @@ pub struct MeasurementConfig { pub host: String, pub port: u64, pub duration: Option, - pub interval: u16, + pub interval: u32, pub skip_seconds: Option, pub api: Api, pub detailed_output: bool, @@ -212,7 +212,7 @@ pub async fn perform_measurement( // Create MeasurmentContext for each group let mut measurement_config = measurement_config.clone(); - measurement_config.interval = group.cycle_time_ms; + measurement_config.interval = group.cycle_time_microseconds; let hist = Histogram::::new_with_bounds(1, 60 * 60 * 1000 * 1000, 3)?; let running_hist = Histogram::::new_with_bounds(1, 60 * 60 * 1000 * 1000, 3)?; @@ -351,7 +351,7 @@ async fn measurement_loop(ctx: &mut MeasurementContext) -> Result<(u64, u64)> { let mut interval_to_run = if ctx.measurement_config.interval == 0 { None } else { - Some(tokio::time::interval(Duration::from_millis( + Some(tokio::time::interval(Duration::from_micros( ctx.measurement_config.interval.into(), ))) }; diff --git a/src/utils.rs b/src/utils.rs index 60d7754..dc39c76 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -45,21 +45,21 @@ pub fn read_config(config_file: Option<&String>) -> Result> { Ok(vec![ Group { group_name: String::from("Group A"), - cycle_time_ms: 0, + cycle_time_microseconds: 0, signals: vec![Signal { path: String::from("Vehicle.Speed"), }], }, Group { group_name: String::from("Group B"), - cycle_time_ms: 0, + cycle_time_microseconds: 0, signals: vec![Signal { path: String::from("Vehicle.IsBrokenDown"), }], }, Group { group_name: String::from("Group C"), - cycle_time_ms: 0, + cycle_time_microseconds: 0, signals: vec![ Signal { path: String::from("Vehicle.Body.Windshield.Front.Wiping.Intensity"),