autd3-protobuf 27.0.0

Protocol Buffer
Documentation
use crate::pb::*;

impl From<GainStmMode> for autd3_driver::firmware::cpu::GainSTMMode {
    fn from(value: GainStmMode) -> Self {
        match value {
            GainStmMode::PhaseIntensityFull => Self::PhaseIntensityFull,
            GainStmMode::PhaseFull => Self::PhaseFull,
            GainStmMode::PhaseHalf => Self::PhaseHalf,
        }
    }
}

impl From<autd3_driver::firmware::cpu::GainSTMMode> for GainStmMode {
    fn from(value: autd3_driver::firmware::cpu::GainSTMMode) -> Self {
        match value {
            autd3_driver::firmware::cpu::GainSTMMode::PhaseIntensityFull => {
                Self::PhaseIntensityFull
            }
            autd3_driver::firmware::cpu::GainSTMMode::PhaseFull => Self::PhaseFull,
            autd3_driver::firmware::cpu::GainSTMMode::PhaseHalf => Self::PhaseHalf,
            _ => unimplemented!(),
        }
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn gain_stm_mode() {
        {
            let v = autd3_driver::firmware::cpu::GainSTMMode::PhaseIntensityFull;
            let msg: GainStmMode = v.into();
            let v2: autd3_driver::firmware::cpu::GainSTMMode = msg.into();
            assert_eq!(v, v2);
        }

        {
            let v = autd3_driver::firmware::cpu::GainSTMMode::PhaseFull;
            let msg: GainStmMode = v.into();
            let v2: autd3_driver::firmware::cpu::GainSTMMode = msg.into();
            assert_eq!(v, v2);
        }

        {
            let v = autd3_driver::firmware::cpu::GainSTMMode::PhaseHalf;
            let msg: GainStmMode = v.into();
            let v2: autd3_driver::firmware::cpu::GainSTMMode = msg.into();
            assert_eq!(v, v2);
        }
    }
}