これは開発版のドキュメントである. 内容は次のリリースまでに変更される可能性がある. 最新のリリース版は 0.14.x を参照.
ReleaseFailsafe
ReleaseFailsafe は, フェイルセーフ (ホストとの通信途絶・PTP ロック喪失・CPU ウォッチドッグ) で止まった出力を再開させるコマンド.
フェイルセーフの条件と既定値は SetCpuConfig を参照.
止まる前の出力がそのまま再開する.
フェイルセーフで止まっていないデバイスには何もしない.
発火の条件が成り立ったままのデバイス (PTP のロックを失ったまま等) は, エラー (ERR_FAILSAFE_CONDITION_ACTIVE) で拒否し, 止まったままにする.
止まっているかどうかは返信 (Response) の device_status() が返す DeviceStatus の failsafe_active で確認できる (状態監視 参照).
Clear でも解除されるが, すべての状態が既定値に戻る.
ReleaseFailsafe;ReleaseFailsafe()new ReleaseFailsafe();Example
Section titled “Example”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?;}import asyncio
from autd3 import Client, TransportOptionfrom autd3.commands import Clear, ReleaseFailsafe, Synchronizefrom autd3.geometry import Autd3, Geometry
async def main() -> None: geometry = Geometry([Autd3()]) with await Client.open(geometry, TransportOption()) as client: await client.send(Clear()) await client.send(Synchronize())
status = (await client.read_state()).device_status() if any(s.failsafe_active for s in status): await client.send(ReleaseFailsafe())
asyncio.run(main())using System.Linq;using System.Threading.Tasks;using AUTD3;
var geometry = new Geometry(new[] { new Autd3() });using var client = await Client.OpenAsync(geometry, new TransportOption());await client.SendAsync(new Clear());await client.SendAsync(new Synchronize());
var status = (await client.ReadStateAsync()).DeviceStatus();if (status.Any(s => s.FailsafeActive)){ await client.SendAsync(new ReleaseFailsafe());}