using Aitex.Core.Common.DeviceData; using Aitex.Core.RT.DataCenter; using Aitex.Core.RT.Device; using Aitex.Core.RT.IOCore; using Aitex.Core.RT.Log; using Aitex.Core.RT.OperationCenter; using CdioCs; using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; using System.Xml; namespace Venus_RT.Devices { public class IoSwitch : BaseDevice, IDevice { private readonly DIAccessor _di; private readonly DOAccessor _do; /// /// true是small size,false是big size,null di/do都为空 /// public bool? Status { get { return _di==null? _do?.Value:_di.Value; } } public bool SetPoint { get { return _do.Value; } set { if (_do != null) { _do.Value = value; } } } public IoSwitch(string module, XmlElement node, string ioModule = "") { base.Module = module; base.Name = node.GetAttribute("id"); base.Display = node.GetAttribute("display"); base.DeviceID = node.GetAttribute("schematicId"); _di = ParseDiNode("di", node, ioModule); _do = ParseDoNode("do", node, ioModule); } public bool Initialize() { return true; } public void Terminate() { } public void Monitor() { } public void Reset() { } public void TurnOn() { SetPoint = true; } public void TurnOff() { SetPoint = false; } } }