DeviceData.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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. [DataContract]
  37. public class SCData : DeviceData
  38. {
  39. [DataMember(Order = 5)]
  40. public WCS_SC520 D520 { get; set; }
  41. [DataMember(Order = 3)]
  42. public WCS_SC521 D521 { get; set; }
  43. [DataMember(Order = 4)]
  44. public WCS_SC537 D537 { get; set; }
  45. }
  46. [DataContract]
  47. public class RobotData:DeviceData
  48. {
  49. [DataMember(Order = 3)]
  50. public WCS_Robot Data { get; set; }
  51. }
  52. [DataContract]
  53. public class DeviceData
  54. {
  55. [DataMember(Order = 0)]
  56. public string Code { get; set; }
  57. [DataMember(Order = 1)]
  58. public DateTime Frame { get; set; }
  59. [DataMember(Order = 2)]
  60. public string Info { get; set; } = "";
  61. }
  62. [DataContract]
  63. public class DeviceDataCollection<T> where T : DeviceData
  64. {
  65. [DataMember(Order = 0)]
  66. public DateTime Frame { get; set; }
  67. [DataMember(Order = 1)]
  68. public T[] Datas { get; set; }
  69. public DeviceDataCollection() { }
  70. public DeviceDataCollection(DateTime frame, object[] datas)
  71. {
  72. this.Frame = frame;
  73. this.Datas = datas.OfType<T>().ToArray();
  74. }
  75. }
  76. [DataContract]
  77. public class DeviceDataPack
  78. {
  79. [DataMember(Order = 0)]
  80. public DeviceDataCollection<SCData> SCDatas { get; set; }
  81. [DataMember(Order = 1)]
  82. public DeviceDataCollection<RGVData> RGVDatas { get; set; }
  83. [DataMember(Order = 2)]
  84. public DeviceDataCollection<StationData> StationDatas { get; set; }
  85. [DataMember(Order = 3)]
  86. public DeviceDataCollection<RobotData> RobotData { get; set; }
  87. [DataMember(Order = 4)]
  88. public DeviceDataCollection<ProdLineData> ProdLineData { get; set; }
  89. [DataMember(Order = 5)]
  90. public DateTime Frame { get; set; }
  91. /// <summary>
  92. /// 回放最早时间
  93. /// </summary>
  94. [DataMember(Order = 6)]
  95. public int PlaybackSeconds { get; set; }
  96. }
  97. }