namespace Plugin.DODriverControl.Api { public class PCIController : IDIOController { public string Name { get; set; } private short id; public bool Start(out string msg) { msg = string.Empty; id = DASK.Register_Card(DaskHelper.CardType(Name), 0); return id >= 0; } public bool ReadDIBool(string address, out bool res, out string msg) { msg = string.Empty; DASK.DI_ReadLine((ushort)id, 0, ushort.Parse(address), out ushort value); res = Convert.ToBoolean(value); return true; } public bool ReadDOBool(string address, out bool res, out string msg) { msg = string.Empty; DASK.DO_ReadLine((ushort)id, 0, ushort.Parse(address), out ushort value); res = Convert.ToBoolean(value); return true; } public bool WriteBool(string address, bool value, out string msg) { msg = string.Empty; var res = DASK.DO_WriteLine((ushort)id, 0, ushort.Parse(address), Convert.ToUInt16(value)); return res == 0; } public bool Close() { return DASK.Release_Card((ushort)id) == 0; } public void Dispose() { this.Close(); } } }