| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | using System.Xml;using Aitex.Core.RT.IOCore;using Aitex.Core.Util;namespace Aitex.Core.RT.Device.Unit{    public class IoReset : BaseDevice, IDevice    {        private int _resetTime = 5000;        private DOAccessor _doReset = null;        private DeviceTimer _timer = new DeviceTimer();        public IoReset(string module, XmlElement node, string ioModule = "")        {            base.Module = module;            base.Name = node.GetAttribute("id");            base.Display = node.GetAttribute("display");            base.DeviceID = node.GetAttribute("schematicId");            _doReset = ParseDoNode("doReset", node, ioModule);            if (node.HasAttribute("resetTime"))            {                int.TryParse(node.GetAttribute("resetTime"), out _resetTime);            }        }        public bool Initialize()        {            return true;        }        public void Terminate()        {        }        public void Monitor()        {            if (_timer.IsTimeout())            {                _doReset.SetValue(false, out _);                _timer.Stop();            }        }        public void Reset()        {            if (_timer.IsIdle())            {                _timer.Start(_resetTime);                _doReset.SetValue(true, out _);            }        }    }}
 |