autd3capi_driver/firmware/fpga/
loop_behavior.rs

1use std::num::NonZeroU16;
2
3#[repr(C)]
4pub struct LoopBehavior {
5    pub rep: u16,
6}
7
8impl From<autd3::core::datagram::LoopBehavior> for LoopBehavior {
9    fn from(value: autd3::core::datagram::LoopBehavior) -> Self {
10        LoopBehavior { rep: value.rep() }
11    }
12}
13
14impl From<LoopBehavior> for autd3::core::datagram::LoopBehavior {
15    fn from(value: LoopBehavior) -> Self {
16        match value.rep {
17            0xFFFF => autd3::core::datagram::LoopBehavior::Infinite,
18            v => autd3::core::datagram::LoopBehavior::Finite(NonZeroU16::new(v + 1).unwrap()),
19        }
20    }
21}