Browse Source

submit missing file

chenkui 3 days ago
parent
commit
1f035fc30f
1 changed files with 85 additions and 0 deletions
  1. 85 0
      PunkHPX8_RT/Devices/VpwMain/VpwDeviceTimer.cs

+ 85 - 0
PunkHPX8_RT/Devices/VpwMain/VpwDeviceTimer.cs

@@ -0,0 +1,85 @@
+using Aitex.Core.RT.Device;
+using Aitex.Core.Util;
+using MECF.Framework.Common.Equipment;
+using MECF.Framework.Common.ToolLayout;
+using PunkHPX8_RT.Devices.AXIS;
+using PunkHPX8_RT.Devices.SRD;
+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;
+        }
+    }
+}