LoaderDeviceTimer.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using Aitex.Core.RT.Device;
  2. using Aitex.Core.Util;
  3. using CyberX8_RT.Devices.AXIS;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Reflection;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace CyberX8_RT.Devices.Loader
  11. {
  12. public class LoaderDeviceTimer : BaseDevice, IDevice
  13. {
  14. #region 内部变量
  15. private PeriodicJob _periodicJob;
  16. private JetAxisBase _shuttleAAxis;
  17. private JetAxisBase _shuttleBAxis;
  18. private JetAxisBase _crsAAxis;
  19. private JetAxisBase _crsBAxis;
  20. private JetAxisBase _tiltAAxis;
  21. private JetAxisBase _tiltBAxis;
  22. private JetAxisBase _rotationAxis;
  23. private LoaderCommonDevice _commonDevice;
  24. private LoaderSideDevice _sideADevice;
  25. private LoaderSideDevice _sideBDevice;
  26. #endregion
  27. /// <summary>
  28. /// 构造函数
  29. /// </summary>
  30. public LoaderDeviceTimer(string module) : base(module,module,module,module)
  31. {
  32. _periodicJob = new PeriodicJob(20, OnTimer, $"{module}.OnTimer", false);
  33. }
  34. /// <summary>
  35. /// 初始化
  36. /// </summary>
  37. /// <returns></returns>
  38. public bool Initialize()
  39. {
  40. _shuttleAAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.ShuttleA");
  41. _shuttleBAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.ShuttleB");
  42. _tiltAAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.TiltA");
  43. _tiltBAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.TiltB");
  44. _crsAAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.LSA");
  45. _crsBAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.LSB");
  46. _rotationAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.Rotation");
  47. _commonDevice = DEVICE.GetDevice<LoaderCommonDevice>($"{Module}.Common");
  48. _sideADevice = DEVICE.GetDevice<LoaderSideDevice>($"{Module}.SideA");
  49. _sideBDevice = DEVICE.GetDevice<LoaderSideDevice>($"{Module}.SideB");
  50. _periodicJob.Start();
  51. return true;
  52. }
  53. public void Monitor()
  54. {
  55. }
  56. public void Reset()
  57. {
  58. }
  59. public void Terminate()
  60. {
  61. _periodicJob.Stop();
  62. }
  63. /// <summary>
  64. /// 定时器执行
  65. /// </summary>
  66. /// <returns></returns>
  67. private bool OnTimer()
  68. {
  69. _shuttleAAxis.OnTimer();
  70. _shuttleBAxis.OnTimer();
  71. _crsAAxis.OnTimer();
  72. _crsBAxis.OnTimer();
  73. _tiltAAxis.OnTimer();
  74. _tiltBAxis.OnTimer();
  75. _rotationAxis.OnTimer();
  76. _commonDevice.OnTimer();
  77. _sideADevice.OnTimer();
  78. _sideBDevice.OnTimer();
  79. return true;
  80. }
  81. }
  82. }