コンテンツにスキップ

ReleaseFailsafe

ReleaseFailsafe は, フェイルセーフ (ホストとの通信途絶・PTP ロック喪失・CPU ウォッチドッグ) で止まった出力を再開させるコマンド. フェイルセーフの条件と既定値は SetCpuConfig を参照.

止まる前の出力がそのまま再開する. フェイルセーフで止まっていないデバイスには何もしない. 発火の条件が成り立ったままのデバイス (PTP のロックを失ったまま等) は, エラー (ERR_FAILSAFE_CONDITION_ACTIVE) で拒否し, 止まったままにする. 止まっているかどうかは返信 (Response) の device_status() が返す DeviceStatus の failsafe_active で確認できる (状態監視 参照).

Clear でも解除されるが, すべての状態が既定値に戻る.

ReleaseFailsafe;
use autd3_rs::commands::{Clear, ReleaseFailsafe, Synchronize};
use autd3_rs::geometry::{Autd3, Geometry};
use autd3_rs::Client;
use autd3_rs::udp::TransportOption;
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 status = client.read_state().await?.device_status();
if status.iter().any(|s| s.failsafe_active) {
client.send(ReleaseFailsafe).await?;
}