DeviceData.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.Serialization;
  5. namespace WCS.Entity.Protocol
  6. {
  7. [DataContract]
  8. public class ProdLineData : DeviceData
  9. {
  10. [DataMember(Order = 3)]
  11. public List<WCS_AGVTask> TaskList { get; set; } = new List<WCS_AGVTask>();
  12. }
  13. [DataContract]
  14. public class StationData : DeviceData
  15. {
  16. [DataMember(Order = 6)]
  17. public WCS_STATION520 D520 { get; set; }
  18. [DataMember(Order = 3)]
  19. public WCS_STATION521 D521 { get; set; }
  20. [DataMember(Order = 4)]
  21. public WCS_STATION523 D523 { get; set; }
  22. [DataMember(Order = 5)]
  23. public WCS_RobotStation RobotStation { get; set; }
  24. }
  25. [DataContract]
  26. public class RGVData : DeviceData
  27. {
  28. [DataMember(Order = 5)]
  29. public WCS_RGV520 D520 { get; set; }
  30. [DataMember(Order = 3)]
  31. public WCS_RGV521 D521 { get; set; }
  32. [DataMember(Order = 4)]
  33. public WCS_RGV523 D523 { get; set; }
  34. }
  35. /// <summary>
  36. /// 双工位RGV
  37. /// </summary>
  38. [DataContract]
  39. public class DRGVData : DeviceData
  40. {
  41. [DataMember(Order = 5)]
  42. public WCS_DRGV520 D520 { get; set; }
  43. [DataMember(Order = 3)]
  44. public WCS_DRGV521 D521 { get; set; }
  45. [DataMember(Order = 4)]
  46. public WCS_DRGV523 D523 { get; set; }
  47. }
  48. [DataContract]
  49. public class SCData : DeviceData
  50. {
  51. [DataMember(Order = 5)]
  52. public WCS_SC520 D520 { get; set; }
  53. [DataMember(Order = 3)]
  54. public WCS_SC521 D521 { get; set; }
  55. [DataMember(Order = 4)]
  56. public WCS_SC537 D537 { get; set; }
  57. }
  58. [DataContract]
  59. public class RobotData : DeviceData
  60. {
  61. [DataMember(Order = 3)]
  62. public WCS_Robot Data { get; set; }
  63. }
  64. [DataContract]
  65. public class DeviceData
  66. {
  67. [DataMember(Order = 0)]
  68. public string Code { get; set; }
  69. [DataMember(Order = 1)]
  70. public DateTime Frame { get; set; }
  71. [DataMember(Order = 2)]
  72. public string Info { get; set; } = "";
  73. }
  74. [DataContract]
  75. public class DeviceDataCollection<T> where T : DeviceData
  76. {
  77. [DataMember(Order = 0)]
  78. public DateTime Frame { get; set; }
  79. [DataMember(Order = 1)]
  80. public T[] Datas { get; set; }
  81. public DeviceDataCollection()
  82. { }
  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. [DataMember(Order = 7)]
  110. public DeviceDataCollection<DRGVData> DRGVDatas { get; set; }
  111. }
  112. }