Skip to main content

autd3_cpu_wire/
layout.rs

1use crate::frame::PAYLOAD_BYTES;
2use crate::params::{EMISSION_MAX_INDICES, NUM_TRANSDUCERS};
3use crate::payload::{UpdateChunkPayload, WriteModPayload, WritePatternPayload};
4
5pub use crate::params::{EMISSION_SLOT_WORDS, FOCUS_WORDS, MOD_BUFFER_SAMPLES, PWE_TABLE_SIZE};
6
7pub const BUFFER_SIZE_MIN: usize = 2;
8
9pub const EMISSION_RAM_WORDS: usize = EMISSION_SLOT_WORDS * EMISSION_MAX_INDICES as usize;
10pub const MAX_FOCI_TOTAL: usize = EMISSION_RAM_WORDS / FOCUS_WORDS;
11
12pub const OUTPUT_MASK_WORDS: usize = NUM_TRANSDUCERS.div_ceil(16);
13pub const GPIO_OUT_NUM: usize = 4;
14
15pub const MOD_WRITE_MAX_DATA_LEN: usize = PAYLOAD_BYTES - core::mem::size_of::<WriteModPayload>();
16pub const PATTERN_WRITE_MAX_DATA_LEN: usize =
17    PAYLOAD_BYTES - core::mem::size_of::<WritePatternPayload>();
18pub const MAX_FOCI_PER_FRAME: usize = PATTERN_WRITE_MAX_DATA_LEN / (FOCUS_WORDS * 2);
19pub const UPDATE_CHUNK_MAX_DATA_LEN: usize =
20    PAYLOAD_BYTES - core::mem::size_of::<UpdateChunkPayload>();