SRDDeviceTimer.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using Aitex.Core.RT.Device;
  2. using Aitex.Core.Util;
  3. using PunkHPX8_RT.Devices.AXIS;
  4. using MECF.Framework.Common.Equipment;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace PunkHPX8_RT.Devices.SRD
  11. {
  12. public class SRDDeviceTimer : BaseDevice, IDevice
  13. {
  14. #region 常量
  15. private const string SRD = "Srd";
  16. #endregion
  17. #region 内部变量
  18. private PeriodicJob _periodicJob;
  19. private JetAxisBase _srd1RotationAxis;
  20. private JetAxisBase _srd2RotationAxis;
  21. private SrdCommonDevice _srd1CommonDevice;
  22. private SrdCommonDevice _srd2CommonDevice;
  23. #endregion
  24. /// <summary>
  25. /// 构造函数
  26. /// </summary>
  27. public SRDDeviceTimer():base(SRD,SRD,SRD,SRD)
  28. {
  29. _periodicJob = new PeriodicJob(20, OnTimer, $"{SRD}.OnTimer", false);
  30. }
  31. /// <summary>
  32. /// 初始化
  33. /// </summary>
  34. /// <returns></returns>
  35. public bool Initialize()
  36. {
  37. _srd1RotationAxis = DEVICE.GetDevice<JetAxisBase>($"{ModuleName.SRD1}.Rotation");
  38. _srd2RotationAxis = DEVICE.GetDevice<JetAxisBase>($"{ModuleName.SRD2}.Rotation");
  39. _srd1CommonDevice = DEVICE.GetDevice<SrdCommonDevice>($"{ModuleName.SRD1}.Common");
  40. _srd2CommonDevice = DEVICE.GetDevice<SrdCommonDevice>($"{ModuleName.SRD2}.Common");
  41. _periodicJob.Start();
  42. return true;
  43. }
  44. public void Monitor()
  45. {
  46. }
  47. public void Reset()
  48. {
  49. }
  50. public void Terminate()
  51. {
  52. _periodicJob.Stop();
  53. }
  54. /// <summary>
  55. /// 定时器执行
  56. /// </summary>
  57. /// <returns></returns>
  58. private bool OnTimer()
  59. {
  60. if(_srd1RotationAxis!=null)
  61. {
  62. _srd1RotationAxis.OnTimer();
  63. }
  64. if (_srd2RotationAxis != null)
  65. {
  66. _srd2RotationAxis.OnTimer();
  67. }
  68. if(_srd1CommonDevice != null)
  69. {
  70. _srd1CommonDevice.OnTimer();
  71. }
  72. if (_srd2CommonDevice!=null)
  73. {
  74. _srd2CommonDevice.OnTimer();
  75. }
  76. return true;
  77. }
  78. }
  79. }