diff --git a/src/codec2/mod.rs b/src/codec2/mod.rs index 9276caf8e7a8cc1cb892bd3e63a9b321144e98c8..1f7f0fee973959fb4e957460a189a63df7cc887e 100644 --- a/src/codec2/mod.rs +++ b/src/codec2/mod.rs @@ -145,7 +145,7 @@ pub struct Fsk<I: Iterator<Item = Complex>> { } impl<I: Iterator<Item = Complex>> Fsk<I> { - pub fn new(iq_iter: I) -> Self { + pub fn new(iq_iter: I, max_deviation: i32) -> Self { const P: i32 = 5; const FS: i32 = 9600 * P; @@ -153,8 +153,8 @@ impl<I: Iterator<Item = Complex>> Fsk<I> { // Set upper/lower bound on the FSK peaks, from center // (Hz) - let fsk_lower = -15_000; - let fsk_upper = 15_000; + let fsk_lower = -max_deviation; + let fsk_upper = max_deviation; unsafe { fsk_set_freq_est_limits(internal, fsk_lower, fsk_upper); diff --git a/src/decoder/mod.rs b/src/decoder/mod.rs index 5f5e8588016f38c894554d48aa1d01b0386ec97b..a49eae37d2dd64c37faa55d9595a078ece93cf90 100644 --- a/src/decoder/mod.rs +++ b/src/decoder/mod.rs @@ -47,7 +47,7 @@ pub fn decode_forever(felinet_send: mpsc::Sender<SemiPacketIn>, config: &Config, Complex { real, imag } }); let iq_no_dc = RemoveDcBias::new(iq); - let soft_bits = Fsk::new(iq_no_dc); + let soft_bits = Fsk::new(iq_no_dc, config.max_deviation); let demod = Demod::new(soft_bits); demod.demod(|mut p| {