This is the development version of the documentation. It may change before the next release. See 0.14.x for the latest release.
SetFpgaConfig
SetFpgaConfig is a command that changes the settings held by the FPGA.
let config = FpgaConfig { sync_phase_lock, sync_kp, sync_ki, sync_kf,};SetFpgaConfig::new(config);config = FpgaConfig( sync_phase_lock=sync_phase_lock, sync_kp=sync_kp, sync_ki=sync_ki, sync_kf=sync_kf,)SetFpgaConfig(config)var config = new FpgaConfig{ SyncPhaseLock = syncPhaseLock, SyncKp = syncKp, SyncKi = syncKi, SyncKf = syncKf,};new SetFpgaConfig(config);FpgaConfig
Section titled “FpgaConfig”| Field | Type | Default | Description |
|---|---|---|---|
sync_phase_lock |
bool |
true |
Fine adjustment that phase-locks the FPGA clock to the sync pulse shared between devices. (enabled by default) |
sync_kp |
u16 |
64 |
Proportional gain of the fine adjustment. |
sync_ki |
u16 |
1024 |
Integral gain of the fine adjustment. |
sync_kf |
u16 |
4096 |
Integral gain of the frequency estimation before the fine adjustment engages. |
Example
Section titled “Example”use autd3_rs::commands::{Clear, FpgaConfig, SetFpgaConfig, 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?;
client.send(SetFpgaConfig::new(FpgaConfig { sync_phase_lock: false, ..Default::default()})).await?;
client.send(SetFpgaConfig::default()).await?;import asyncio
from autd3 import Client, TransportOptionfrom autd3.commands import Clear, FpgaConfig, SetFpgaConfig, 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())
await client.send(SetFpgaConfig(FpgaConfig(sync_phase_lock=False)))
await client.send(SetFpgaConfig())
asyncio.run(main())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());
await client.SendAsync(new SetFpgaConfig(new FpgaConfig { SyncPhaseLock = false }));
await client.SendAsync(new SetFpgaConfig());