SunWaySignalTower.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Aitex.Core.Util;
  2. using MECF.Framework.Common.Device.Bases;
  3. using MECF.Framework.Common.Equipment;
  4. using CyberX8_RT.Devices.EFEM;
  5. using CyberX8_RT.Modules;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace CyberX8_RT.Devices.SignalLight
  12. {
  13. public class SunWaySignalTower : SignalTowerBase
  14. {
  15. private EfemBase _efem;
  16. private List<SunWaySignalLight> _lights = new List<SunWaySignalLight>();
  17. public SunWaySignalTower(string module, string name) : base("", "")
  18. {
  19. base.Module = module;
  20. base.Name = name;
  21. base.Display = name;
  22. base.DeviceID = "";
  23. }
  24. public override bool Initialize()
  25. {
  26. base.Initialize();
  27. if (_efem == null && Singleton<RouteManager>.Instance.EFEM != null)
  28. {
  29. _efem = Singleton<RouteManager>.Instance.EFEM.EfemDevice;
  30. }
  31. CustomSignalTower();
  32. return true;
  33. }
  34. //重新连接EFEM之后,需要重置灯塔
  35. public void ResetData()
  36. {
  37. foreach (var rorzeSingalLight in _lights)
  38. {
  39. rorzeSingalLight.ResetData();
  40. }
  41. }
  42. public override SignalLightBase CreateLight(MECF.Framework.Common.Device.Bases.LightType type)
  43. {
  44. var light = new SunWaySignalLight(ModuleName.System.ToString(), $"SignalLight{type}", _efem)
  45. { Type = type };
  46. _lights.Add(light);
  47. return light;
  48. }
  49. }
  50. }