DeviceData.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.Serialization;
  5. using WCS.Entity.Protocol.Station;
  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 = 3)]
  18. public WCS_Station520 D520 { get; set; }
  19. [DataMember(Order = 4)]
  20. public WCS_Station521 D521 { get; set; }
  21. [DataMember(Order = 5)]
  22. public WCS_Station523 D523 { get; set; }
  23. //[DataMember(Order = 4)]
  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_SRM520 D520 { get; set; }
  41. [DataMember(Order = 3)]
  42. public WCS_SRM521 D521 { get; set; }
  43. [DataMember(Order = 4)]
  44. public WCS_SRM537 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. { }
  71. public DeviceDataCollection(DateTime frame, object[] datas)
  72. {
  73. this.Frame = frame;
  74. this.Datas = datas.OfType<T>().ToArray();
  75. }
  76. }
  77. [DataContract]
  78. public class DeviceDataPack
  79. {
  80. [DataMember(Order = 0)]
  81. public DeviceDataCollection<SCData> SCDatas { get; set; }
  82. [DataMember(Order = 1)]
  83. public DeviceDataCollection<RGVData> RGVDatas { get; set; }
  84. [DataMember(Order = 2)]
  85. public DeviceDataCollection<StationData> StationDatas { get; set; }
  86. [DataMember(Order = 3)]
  87. public DeviceDataCollection<RobotData> RobotData { get; set; }
  88. [DataMember(Order = 4)]
  89. public DeviceDataCollection<ProdLineData> ProdLineData { get; set; }
  90. [DataMember(Order = 5)]
  91. public DateTime Frame { get; set; }
  92. /// <summary>
  93. /// 回放最早时间
  94. /// </summary>
  95. [DataMember(Order = 6)]
  96. public int PlaybackSeconds { get; set; }
  97. }
  98. }