Skip to main content

autd3_cpu_wire/payload/
write_pattern_fused.rs

1use zerocopy::little_endian::{U16, U32, U64};
2use zerocopy::{FromBytes, Immutable, IntoBytes, KnownLayout, Unaligned};
3
4#[derive(FromBytes, IntoBytes, KnownLayout, Immutable, Unaligned)]
5#[repr(C)]
6pub struct WritePatternFusedPayload {
7    pub bank: u8,
8    pub emission_type: u8,
9    pub divider: U16,
10    pub size: U32,
11    pub num_foci: u8,
12    pub transition_mode: u8,
13    pub sound_speed: U16,
14    pub rep: U16,
15    pub data_len: U16,
16    pub transition_value: U64,
17    pub margin_ns: U32,
18    pub reserved: U32,
19}
20
21const _: () = assert!(core::mem::offset_of!(WritePatternFusedPayload, bank) == 0);
22const _: () = assert!(core::mem::offset_of!(WritePatternFusedPayload, emission_type) == 1);
23const _: () = assert!(core::mem::offset_of!(WritePatternFusedPayload, divider) == 2);
24const _: () = assert!(core::mem::offset_of!(WritePatternFusedPayload, size) == 4);
25const _: () = assert!(core::mem::offset_of!(WritePatternFusedPayload, num_foci) == 8);
26const _: () = assert!(core::mem::offset_of!(WritePatternFusedPayload, transition_mode) == 9);
27const _: () = assert!(core::mem::offset_of!(WritePatternFusedPayload, sound_speed) == 10);
28const _: () = assert!(core::mem::offset_of!(WritePatternFusedPayload, rep) == 12);
29const _: () = assert!(core::mem::offset_of!(WritePatternFusedPayload, data_len) == 14);
30const _: () = assert!(core::mem::offset_of!(WritePatternFusedPayload, transition_value) == 16);
31const _: () = assert!(core::mem::offset_of!(WritePatternFusedPayload, margin_ns) == 24);
32const _: () = assert!(core::mem::size_of::<WritePatternFusedPayload>() == 32);