| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | using Aitex.Core.RT.Device;using Aitex.Core.Util;using MECF.Framework.Common.Equipment;using MECF.Framework.Common.ToolLayout;using PunkHPX8_RT.Devices.VpwCell;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace PunkHPX8_RT.Devices.VpwMain{    public class VpwDeviceTimer : BaseDevice, IDevice    {        #region 常量        private const string VPW = "Vpw";        #endregion        #region 内部变量        private PeriodicJob _periodicJob;        private VpwMainDevice _vpwMainDevice;        private VpwCellDevice[] _vpwCellDevices;        #endregion        /// <summary>        /// 构造函数        /// </summary>        public VpwDeviceTimer() : base(VPW, VPW, VPW, VPW)        {            _periodicJob = new PeriodicJob(20, OnTimer, $"{VPW}.OnTimer", false);        }        /// <summary>        /// 初始化        /// </summary>        /// <returns></returns>        public bool Initialize()        {            if (ModuleHelper.IsInstalled(ModuleName.VPWMain1))            {                _vpwMainDevice=DEVICE.GetDevice<VpwMainDevice>(ModuleName.VPWMain1.ToString());            }            List<string> installedCells = VpwCellItemManager.Instance.InstalledModules;            _vpwCellDevices=new VpwCellDevice[installedCells.Count];            for (int i=0;i<_vpwCellDevices.Length;i++)            {                _vpwCellDevices[i] = DEVICE.GetDevice<VpwCellDevice>(installedCells[i]);            }            _periodicJob.Start();            return true;        }        public void Monitor()        {        }        public void Reset()        {        }        public void Terminate()        {            _periodicJob.Stop();        }        /// <summary>        /// 定时器执行        /// </summary>        /// <returns></returns>        private bool OnTimer()        {                       if (_vpwMainDevice != null)            {                _vpwMainDevice.OnTimer();            }            foreach(var item in _vpwCellDevices)            {                item.OnTimer();            }            return true;        }    }}
 |