using Aitex.Core.RT.Device; using Aitex.Core.Util; using CyberX8_RT.Devices.AXIS; using MECF.Framework.Common.Equipment; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CyberX8_RT.Devices.SRD { public class SRDDeviceTimer : BaseDevice, IDevice { #region 常量 private const string SRD = "Srd"; #endregion #region 内部变量 private PeriodicJob _periodicJob; private JetAxisBase _srd1ArmAxis; private JetAxisBase _srd1RotationAxis; private JetAxisBase _srd2ArmAxis; private JetAxisBase _srd2RotationAxis; private SrdCommonDevice _srd1CommonDevice; private SrdCommonDevice _srd2CommonDevice; #endregion /// /// 构造函数 /// public SRDDeviceTimer():base(SRD,SRD,SRD,SRD) { _periodicJob = new PeriodicJob(20, OnTimer, $"{SRD}.OnTimer", false); } /// /// 初始化 /// /// public bool Initialize() { _srd1ArmAxis=DEVICE.GetDevice($"{ModuleName.SRD1}.Arm"); _srd1RotationAxis = DEVICE.GetDevice($"{ModuleName.SRD1}.Rotation"); _srd2ArmAxis = DEVICE.GetDevice($"{ModuleName.SRD2}.Arm"); _srd2RotationAxis = DEVICE.GetDevice($"{ModuleName.SRD2}.Rotation"); _srd1CommonDevice = DEVICE.GetDevice($"{ModuleName.SRD1}.Common"); _srd2CommonDevice = DEVICE.GetDevice($"{ModuleName.SRD2}.Common"); _periodicJob.Start(); return true; } public void Monitor() { } public void Reset() { } public void Terminate() { _periodicJob.Stop(); } /// /// 定时器执行 /// /// private bool OnTimer() { if (_srd1ArmAxis != null) { _srd1ArmAxis.OnTimer(); } if(_srd1RotationAxis!=null) { _srd1RotationAxis.OnTimer(); } if (_srd2ArmAxis != null) { _srd2ArmAxis.OnTimer(); } if (_srd2RotationAxis != null) { _srd2RotationAxis.OnTimer(); } if(_srd1CommonDevice != null) { _srd1CommonDevice.OnTimer(); } if (_srd2CommonDevice!=null) { _srd2CommonDevice.OnTimer(); } return true; } } }