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

SetGpioOut

SetGpioOut は, デバイスの 4 本の GPIO 出力端子に出力する信号を設定するコマンド.

SetGpioOut { outputs };
フィールド 説明
outputs [GpioOut; 4] 端子 0..3 に割り当てる出力
Off 常に Low (デフォルト)
BaseSignal 超音波の基準信号 (40 kHz)
Thermo 温度センサのアサート
ForceFan ForceFan の状態
Sync 同期信号
ModBank アクティブな Modulation バンク
ModIdx(u16) Modulation が指定インデックスのとき High
PatternBank アクティブな Pattern バンク
PatternIdx(u16) Pattern が指定インデックスのとき High
IsStmMode Stm モード (size != 1) のとき High
SysTimeEq(DcSysTime) システム時刻が指定値に一致したとき High
SyncDiff 同期誤差
PwmOut(u8) 指定振動子の PWM 出力
Direct(bool) 指定した固定値を直接出力

SysTimeEq に渡す DcSysTime については, DcSysTime を参照.

use autd3_rs::commands::{GpioOut, SetGpioOut};
use autd3_rs::geometry::{Autd3, Geometry};
use autd3_rs::{Client, ClientConfig};
use autd3_rs_link_nop::Nop;
let geometry = Geometry::new(vec![Autd3::default()]);
let client = Client::open(&geometry, Nop, ClientConfig::default()).await?;
let mut builder = client.datagram_builder();
builder.push(SetGpioOut {
outputs: [
GpioOut::PatternBank,
GpioOut::Thermo,
GpioOut::PwmOut(0),
GpioOut::Off,
],
});
let frames = builder.build()?;
for frame in &frames {
client.send_checked(frame).await?;
}
client.close().await?;