public string?Open() { try { AddDevices(); var link = AUTDSettings.Instance.LinkSelected switch { LinkSelect.SOEM => Link.SOEM(AUTDSettings.Instance.InterfaceName.Split(',').LastOrDefault()?.Trim() ?? string.Empty, _autd.NumDevices, AUTDSettings.Instance.CycleTicks), LinkSelect.TwinCAT => Link.TwinCAT(), LinkSelect.Emulator => Link.Emulator(AUTDSettings.Instance.EmulatorPort, _autd), _ => throw new NotImplementedException() }; if (!_autd.Open(link)) { return(AUTD.LastError); } IsOpen.Value = true; _autd.Clear(); return(null); } catch (Exception e) { return(e.Message); } }
void Awake() { _autd = new AUTD(); // 単位や座標系はUnity空間に合わせてあります // つまり, 単位はm, 座標系は"z"軸の反転した左手座標系です // また, 回転指定にクオータニオンを直接指定できます. _autd.AddDevice(gameObject.transform.position, gameObject.transform.rotation); _autd.Open(); _autd.AppendModulationSync(AUTD.SineModulation(150)); // 150 Hz }
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 }
public static void Test() { Console.WriteLine("Test with TwinCAT"); var autd = new AUTD(); autd.AddDevice(Vector3d.Zero, Vector3d.Zero); var link = Link.TwinCAT(); if (!autd.Open(link)) { Console.WriteLine(AUTD.LastError); return; } TestRunner.Run(autd); }
public static void Test() { Console.WriteLine("Test with SOEM"); var autd = new AUTD(); autd.AddDevice(Vector3d.Zero, Vector3d.Zero); //autd.AddDevice(Vector3d.Zero, Vector3d.Zero, 1); var ifname = GetIfname(); var link = Link.SOEM(ifname, autd.NumDevices, 1, x => { Console.WriteLine($"Unrecoverable error occurred: {x}"); Environment.Exit(-1); }); if (!autd.Open(link)) { Console.WriteLine(AUTD.LastError); return; } TestRunner.Run(autd); }