diff --git a/src/lib.rs b/src/lib.rs index 64784f1..e2d18ab 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -798,8 +798,13 @@ fn signal_from_payload(mut w: impl Write, signal: &Signal, msg: &Message) -> Res writeln!(w, r"let signal = {read_fn};")?; writeln!(w)?; - if signal.size == 1 { - writeln!(w, "signal == 1")?; + if signal.signal_size == 1 { + // inverted bit signal + if signal.factor == -1.0 && signal.offset == 1.0 { + writeln!(w, "signal == 0")?; + } else { + writeln!(w, "signal == 1")?; + } } else if signal_is_float_in_rust(signal) { // Scaling is always done on floats writeln!(w, "let factor = {}_f32;", signal.factor)?;