wavemeter: do not crash in do_calibrate when MEAS signal is wrong
This commit is contained in:
parent
743e5278a3
commit
8209f77c1e
@ -46,7 +46,8 @@ fn read_config_from_file<P: AsRef<Path>>(path: P) -> Result<Config, Box<dyn Erro
|
|||||||
|
|
||||||
fn do_calibrate(config: &Config) {
|
fn do_calibrate(config: &Config) {
|
||||||
let mut sample_count = 0;
|
let mut sample_count = 0;
|
||||||
let max_sample_count = (config.sample_rate/4.0) as u32;
|
let avg_ref = (config.ref_min + config.ref_max)/2.0;
|
||||||
|
let max_sample_count = (avg_ref/4.0) as u32;
|
||||||
let mut position_min = i64::max_value();
|
let mut position_min = i64::max_value();
|
||||||
let mut position_max = i64::min_value();
|
let mut position_max = i64::min_value();
|
||||||
|
|
||||||
@ -68,9 +69,9 @@ fn do_calibrate(config: &Config) {
|
|||||||
if position < position_min {
|
if position < position_min {
|
||||||
position_min = position;
|
position_min = position;
|
||||||
}
|
}
|
||||||
|
sample_count += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sample_count += 1;
|
|
||||||
if sample_count == max_sample_count {
|
if sample_count == max_sample_count {
|
||||||
let displacement = ((position_max-position_min) as f64)/(noptica::Dpll::TURN as f64)*config.ref_wavelength;
|
let displacement = ((position_max-position_min) as f64)/(noptica::Dpll::TURN as f64)*config.ref_wavelength;
|
||||||
println!("{} um", 1.0e6*displacement);
|
println!("{} um", 1.0e6*displacement);
|
||||||
|
Loading…
Reference in New Issue
Block a user