public static void Test(AUTD autd) { const double x = AUTD.DeviceWidth / 2; const double y = AUTD.DeviceHeight / 2; const double z = 150; autd.SilentMode = false; var mod = Modulation.Static(); autd.Send(mod); var center = new Vector3d(x, y, z); var seq = PointSequence.Create(); const int pointNum = 200; for (var i = 0; i < pointNum; i++) { const double radius = 30.0; var theta = 2.0 * Math.PI * i / pointNum; var p = radius * new Vector3d(Math.Cos(theta), Math.Sin(theta), 0); seq.AddPoint(center + p); } seq.Frequency = 1; Console.WriteLine($"Actual frequency is {seq.Frequency}"); autd.Send(seq, mod); }
public static void Test(AUTD autd) { autd.SilentMode = false; var delays = new byte[autd.NumDevices, AUTD.NumTransInDevice]; delays[0, 0] = 4; autd.SetDelayOffset(delays, null); var uniform = new ushort[autd.NumDevices, AUTD.NumTransInDevice]; for (var i = 0; i < autd.NumDevices; i++) { for (var j = 0; j < AUTD.NumTransInDevice; j++) { uniform[i, j] = 0xFFFF; } } var burst = new byte[4000]; burst[0] = 0xFF; var g = Gain.Custom(uniform); var m = Modulation.Custom(burst); autd.Send(g, m); }
public static void Test(AUTD autd) { const double x = AUTD.DeviceWidth / 2; const double y = AUTD.DeviceHeight / 2; const double z = 150; var center = new Vector3d(x, y, z); var g1 = Gain.FocalPoint(center); var focuses = new[] { center + 30.0 * Vector3d.UnitX, center - 30.0 * Vector3d.UnitX }; var amps = new[] { 1.0, 1.0 }; var backend = Gain.Eigen3Backend(); var g2 = Gain.HoloGSPAT(focuses, amps, backend); var gainMap = new Dictionary <int, Gain> { [0] = g1, [1] = g2 }; var gain = Gain.Grouped(autd, gainMap); var mod = Modulation.Sine(150); // AM sin 150 Hz autd.Send(gain, mod); Gain.DeleteBackend(backend); }
public static void Test(AUTD autd) { const double x = AUTD.TransSpacing * (AUTD.NumTransInX - 1) / 2.0; const double y = AUTD.TransSpacing * (AUTD.NumTransInY - 1) / 2.0; const double z = 150.0; var mod = Modulation.Sine(150); var center = new Vector3d(x, y, z); var focuses = new[] { center + 20.0 * Vector3d.UnitX, center - 20.0 * Vector3d.UnitX }; var amps = new[] { 1.0, 1.0 }; var backend = Gain.Eigen3Backend(); var gain = Gain.HoloSDP(focuses, amps, backend); autd.Send(gain, mod); Gain.DeleteBackend(backend); }
public static void Test(AUTD autd) { const double x = AUTD.DeviceWidth / 2; const double y = AUTD.DeviceHeight / 2; const double z = 150.0; autd.SilentMode = false; var mod = Modulation.Static(); autd.Send(mod); const double radius = 30.0; const int size = 100; var center = new Vector3d(x, y, z); var stm = autd.STM(); for (var i = 0; i < size; i++) { var theta = 2 * AUTD.Pi * i / size; var r = new Vector3d(Math.Cos(theta), Math.Sin(theta), 0); var f = Gain.FocalPoint(center + radius * r); stm.AddSTMGain(f); } stm.StartSTM(0.5); Console.WriteLine("press any key to stop..."); Console.ReadKey(true); stm.StopSTM(); stm.FinishSTM(); }
void Update() { if (Target != null) { _autd.Send(Gain.FocalPoint(Target.transform.position)); } }
public bool SendGain() { var instance = AUTDSettings.Instance; var gain = instance.GainSelect switch { GainSelect.FocalPoint => instance.Focus.ToGain(), GainSelect.BesselBeam => instance.Bessel.ToGain(), GainSelect.Holo => instance.Holo.ToGain(), GainSelect.PlaneWave => instance.PlaneWave.ToGain(), GainSelect.TransducerTest => instance.TransducerTest.ToGain(), _ => throw new ArgumentOutOfRangeException() }; var res = _autd.Send(gain); IsRunning.Value = res; return(res); }
public static void Test(AUTD autd) { const double x = AUTD.DeviceWidth / 2; const double y = AUTD.DeviceHeight / 2; const double z = 150; var mod = Modulation.Sine(150); var gain = Focus(autd, new Vector3d(x, y, z)); autd.Send(gain, mod); }
public static void Test(AUTD autd) { const double x = AUTD.DeviceWidth / 2; const double y = AUTD.DeviceHeight / 2; const double z = 150; var mod = Modulation.Sine(150); // AM sin 150 Hz var gain = Gain.FocalPoint(new Vector3d(x, y, z)); // Focal point @ (x, y, z) [mm] autd.Send(gain, mod); }
public static void Test(AUTD autd) { const double x = AUTD.DeviceWidth / 2; const double y = AUTD.DeviceHeight / 2; var mod = Modulation.Sine(150); // AM sin 150 Hz var start = new Vector3d(x, y, 0); var dir = Vector3d.UnitZ; var gain = Gain.BesselBeam(start, dir, 13.0f / 180f * AUTD.Pi); // BesselBeam from (x, y, 0), theta = 13 deg autd.Send(gain, mod); }
void Awake() { _autd = new AUTD(); _autd.AddDevice(gameObject.transform.position, gameObject.transform.rotation); string ifname = @"write your interface name here"; _link = Link.SOEM(ifname, _autd.NumDevices); _autd.Open(_link); _autd.Clear(); _autd.Send(Modulation.Sine(150)); // 150 Hz }