added realtime parameter
This commit is contained in:
@@ -8,8 +8,8 @@ use std::fs::File;
|
||||
use std::path::Path;
|
||||
use std::time::Duration;
|
||||
|
||||
use argparse::{ArgumentParser, Print, Store};
|
||||
use sleep::sleep;
|
||||
use argparse::{ArgumentParser, Print, Store, StoreTrue};
|
||||
use sleep::{set_priority, sleep};
|
||||
use time::precise_time_ns;
|
||||
|
||||
fn duration_from_ns(duration_ns: u64) -> Duration {
|
||||
@@ -79,6 +79,7 @@ fn main() {
|
||||
let mut max: u64 = 100_000_000;
|
||||
let mut step: u64 = 1_000_000;
|
||||
let mut count: u64 = 100;
|
||||
let mut realtime: bool = false;
|
||||
let mut output: String = "".to_string();
|
||||
let mut file: Option<File> = None;
|
||||
|
||||
@@ -97,6 +98,9 @@ fn main() {
|
||||
ap.refer(&mut count)
|
||||
.add_option(&["--loop"], Store,
|
||||
"Count of measurements per period");
|
||||
ap.refer(&mut realtime)
|
||||
.add_option(&["--rt"], StoreTrue,
|
||||
"Output file");
|
||||
ap.refer(&mut output)
|
||||
.add_option(&["-o", "--out"], Store,
|
||||
"Output file");
|
||||
@@ -105,6 +109,14 @@ fn main() {
|
||||
ap.parse_args_or_exit();
|
||||
}
|
||||
|
||||
if realtime {
|
||||
let ret = set_priority(99);
|
||||
|
||||
if ret != 0 {
|
||||
panic!("Set realtime priority failed.");
|
||||
}
|
||||
}
|
||||
|
||||
if output != "" {
|
||||
file = Some(File::create(Path::new(output.as_str()))
|
||||
.expect(format!("Open file '{}' failed", output).as_str()));
|
||||
|
||||
Reference in New Issue
Block a user