コンテンツにスキップ
これは開発版のドキュメントである. 内容は次のリリースまでに変更される可能性がある. 最新のリリース版は 0.14.x を参照.

ConfigPattern

ConfigPattern は, Pattern バンクの再生パラメータを設定する低レベルコマンド. 設定は書き込まれるだけで, 有効化するには ActivatePatternBank を送る.

ConfigPattern {
bank,
config,
size,
loop_behavior,
};
フィールド 型 説明
bank PatternBank 対象バンク
config SamplingConfig 再生サンプリング周波数
size usize バンク内のサンプル数. 静的 Pattern は 1
loop_behavior LoopBehavior 再生ループ回数 (Infinite / Finite)

loop_behavior は, ActivatePatternBank で現在と異なるバンクへ切り替えたときのみ作用する.

size = 1 (静的 Pattern) は loop_behavior = Infinite のときのみ有効. 有限ループを使う場合は size を 2 以上にする.

use core::num::NonZeroU16;
use autd3_rs::commands::{
ActivatePatternBank, Clear, ConfigPattern, Synchronize, WritePatternBuffer,
};
use autd3_rs::geometry::{Autd3, Geometry, offset};
use autd3_rs::units::{m, mm, s};
use autd3_rs::value::{Intensity, LoopBehavior, PatternBank, SamplingConfig, TransitionMode};
use autd3_rs::Client;
use autd3_rs::udp::TransportOption;
use autd3_rs_pattern::{focus, wavelength};
let geometry = Geometry::new(vec![Autd3::default()]);
let option = TransportOption::default();
let mut client = Client::open(&geometry, &option).await?;
client.send(Clear).await?;
client.send(Synchronize).await?;
let mut phases = geometry.phase_buffer();
focus(
&geometry,
geometry.center() + offset(0.0 * mm, 0.0 * mm, 150.0 * mm),
wavelength(340.0 * m / s),
&mut phases,
);
let bank = PatternBank::B0;
client
.send(WritePatternBuffer::new(bank, 0, &[phases], Intensity::MAX))
.await?;
client.send(ConfigPattern {
bank,
config: SamplingConfig::new(NonZeroU16::MAX),
size: 1,
loop_behavior: LoopBehavior::Infinite,
}).await?;
client.send(ActivatePatternBank {
bank,
transition_mode: TransitionMode::Immediate,
}).await?;