DeviceData.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.Serialization;
  5. using System.Text;
  6. namespace WCS.Entity.Protocol
  7. {
  8. [DataContract]
  9. public class ProdLineData : DeviceData
  10. {
  11. [DataMember(Order = 3)]
  12. public List<WCS_AGVTask> TaskList { get; set; } = new List<WCS_AGVTask>();
  13. }
  14. [DataContract]
  15. public class StationData : DeviceData
  16. {
  17. [DataMember(Order = 6)]
  18. public WCS_STATION520 D520 { get; set; }
  19. [DataMember(Order = 3)]
  20. public WCS_STATION521 D521 { get; set; }
  21. [DataMember(Order = 4)]
  22. public WCS_STATION523 D523 { get; set; }
  23. [DataMember(Order = 5)]
  24. public WCS_RobotStation RobotStation { get; set; }
  25. }
  26. [DataContract]
  27. public class RGVData : DeviceData
  28. {
  29. [DataMember(Order = 5)]
  30. public WCS_RGV520 D520 { get; set; }
  31. [DataMember(Order = 3)]
  32. public WCS_RGV521 D521 { get; set; }
  33. [DataMember(Order = 4)]
  34. public WCS_RGV523 D523 { get; set; }
  35. }
  36. /// <summary>
  37. /// 双工位RGV
  38. /// </summary>
  39. [DataContract]
  40. public class DRGVData : DeviceData
  41. {
  42. [DataMember(Order = 5)]
  43. public WCS_DRGV520 D520 { get; set; }
  44. [DataMember(Order = 3)]
  45. public WCS_DRGV521 D521 { get; set; }
  46. [DataMember(Order = 4)]
  47. public WCS_DRGV523 D523 { get; set; }
  48. }
  49. [DataContract]
  50. public class SCData : DeviceData
  51. {
  52. [DataMember(Order = 5)]
  53. public WCS_SC520 D520 { get; set; }
  54. [DataMember(Order = 3)]
  55. public WCS_SC521 D521 { get; set; }
  56. [DataMember(Order = 4)]
  57. public WCS_SC537 D537 { get; set; }
  58. }
  59. [DataContract]
  60. public class RobotData:DeviceData
  61. {
  62. [DataMember(Order = 3)]
  63. public WCS_Robot Data { get; set; }
  64. }
  65. [DataContract]
  66. public class DeviceData
  67. {
  68. [DataMember(Order = 0)]
  69. public string Code { get; set; }
  70. [DataMember(Order = 1)]
  71. public DateTime Frame { get; set; }
  72. [DataMember(Order = 2)]
  73. public string Info { get; set; } = "";
  74. }
  75. [DataContract]
  76. public class DeviceDataCollection<T> where T : DeviceData
  77. {
  78. [DataMember(Order = 0)]
  79. public DateTime Frame { get; set; }
  80. [DataMember(Order = 1)]
  81. public T[] Datas { get; set; }
  82. public DeviceDataCollection() { }
  83. public DeviceDataCollection(DateTime frame, object[] datas)
  84. {
  85. this.Frame = frame;
  86. this.Datas = datas.OfType<T>().ToArray();
  87. }
  88. }
  89. [DataContract]
  90. public class DeviceDataPack
  91. {
  92. [DataMember(Order = 0)]
  93. public DeviceDataCollection<SCData> SCDatas { get; set; }
  94. [DataMember(Order = 1)]
  95. public DeviceDataCollection<RGVData> RGVDatas { get; set; }
  96. [DataMember(Order = 2)]
  97. public DeviceDataCollection<StationData> StationDatas { get; set; }
  98. [DataMember(Order = 3)]
  99. public DeviceDataCollection<RobotData> RobotData { get; set; }
  100. [DataMember(Order = 4)]
  101. public DeviceDataCollection<ProdLineData> ProdLineData { get; set; }
  102. [DataMember(Order = 5)]
  103. public DateTime Frame { get; set; }
  104. /// <summary>
  105. /// 回放最早时间
  106. /// </summary>
  107. [DataMember(Order = 6)]
  108. public int PlaybackSeconds { get; set; }
  109. }
  110. }