DataMangerModel.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using MessagePack;
  2. using MongoDB.Bson.Serialization.Attributes;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Runtime.CompilerServices;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace Shaker.Model
  10. {
  11. public class DataMangerItemModel : TableBase
  12. {
  13. public const int ANALOG_DATA_LENGTH = 31;
  14. [Key(1)]
  15. public DateTime Time { get; set; }
  16. [Key(2)]
  17. public short[] AnalogData = new short[ANALOG_DATA_LENGTH];
  18. /// <summary>
  19. /// 增益
  20. /// </summary>
  21. [Key(3)]
  22. public short Gain { get; set; } = 0;
  23. /// <summary>
  24. /// 运行状态
  25. /// </summary>
  26. [MessagePack.IgnoreMember]
  27. [BsonIgnore]
  28. public OperatingStatus OperatingStatus => (OperatingStatus)AnalogData[0];
  29. /// <summary>
  30. /// 输出电流
  31. /// </summary>
  32. [MessagePack.IgnoreMember]
  33. [BsonIgnore]
  34. public short OutputCurrent => AnalogData[1];
  35. /// <summary>
  36. /// 输出电压
  37. /// </summary>
  38. [MessagePack.IgnoreMember]
  39. [BsonIgnore]
  40. public short OutputVoltage => AnalogData[2];
  41. /// <summary>
  42. /// 励磁电流
  43. /// </summary>
  44. [MessagePack.IgnoreMember]
  45. [BsonIgnore]
  46. public short ExcitationCurrent => AnalogData[3];
  47. /// <summary>
  48. /// 励磁电压
  49. /// </summary>
  50. [MessagePack.IgnoreMember]
  51. [BsonIgnore]
  52. public short ExcitationVoltage => AnalogData[4];
  53. /// <summary>
  54. /// 三相电压
  55. /// </summary>
  56. [MessagePack.IgnoreMember]
  57. [BsonIgnore]
  58. public short ThreePhaseVoltage => AnalogData[5];
  59. /// <summary>
  60. /// 台体温度0
  61. /// </summary>
  62. [MessagePack.IgnoreMember]
  63. [BsonIgnore]
  64. public short AbutmentTemperature0 => AnalogData[6];
  65. /// <summary>
  66. /// 台体温度1
  67. /// </summary>
  68. [MessagePack.IgnoreMember]
  69. [BsonIgnore]
  70. public short AbutmentTemperature1 => AnalogData[7];
  71. /// <summary>
  72. /// 1柜直流电压
  73. /// </summary>
  74. [MessagePack.IgnoreMember]
  75. [BsonIgnore]
  76. public short DCVoltage1 => AnalogData[8];
  77. /// <summary>
  78. /// 2柜直流电压
  79. /// </summary>
  80. [MessagePack.IgnoreMember]
  81. [BsonIgnore]
  82. public short DCVoltage2 => AnalogData[9];
  83. /// <summary>
  84. /// 3柜直流电压
  85. /// </summary>
  86. [MessagePack.IgnoreMember]
  87. [BsonIgnore]
  88. public short DCVoltage3 => AnalogData[10];
  89. /// <summary>
  90. /// 4柜直流电压
  91. /// </summary>
  92. [MessagePack.IgnoreMember]
  93. [BsonIgnore]
  94. public short DCVoltage4 => AnalogData[11];
  95. /// <summary>
  96. /// 外循环压力
  97. /// </summary>
  98. [MessagePack.IgnoreMember]
  99. [BsonIgnore]
  100. public float ExternalCirculatoryPressure => Unsafe.As<Int16,float>(ref AnalogData[12]);
  101. /// <summary>
  102. /// 动圈压力
  103. /// </summary>
  104. [MessagePack.IgnoreMember]
  105. [BsonIgnore]
  106. public float MovingCoilPressure =>Unsafe.As<Int16,float>(ref AnalogData[14]);
  107. /// <summary>
  108. /// 励磁压力
  109. /// </summary>
  110. [MessagePack.IgnoreMember]
  111. [BsonIgnore]
  112. public float ExcitationPressure =>Unsafe.As<Int16,float>(ref AnalogData[16]);
  113. /// <summary>
  114. /// 油泵压力
  115. /// </summary>
  116. [MessagePack.IgnoreMember]
  117. [BsonIgnore]
  118. public float OilPumpPressure =>Unsafe.As<Int16,float>(ref AnalogData[18]);
  119. /// <summary>
  120. /// 动圈流量
  121. /// </summary>
  122. [MessagePack.IgnoreMember]
  123. [BsonIgnore]
  124. public float DynamicFlow =>Unsafe.As<Int16,float>(ref AnalogData[20]);
  125. /// <summary>
  126. /// 励磁流量
  127. /// </summary>
  128. [MessagePack.IgnoreMember]
  129. [BsonIgnore]
  130. public float ExcitationFlow =>Unsafe.As<Int16,float>(ref AnalogData[22]);
  131. /// <summary>
  132. /// 动圈供水温度
  133. /// </summary>
  134. [MessagePack.IgnoreMember]
  135. [BsonIgnore]
  136. public float MovingCoilWaterTemperature =>Unsafe.As<Int16,float>(ref AnalogData[24]);
  137. /// <summary>
  138. /// 励磁供水温度
  139. /// </summary>
  140. [MessagePack.IgnoreMember]
  141. [BsonIgnore]
  142. public float ExcitationWaterTemperature =>Unsafe.As<Int16,float>(ref AnalogData[26]);
  143. /// <summary>
  144. /// 内部油泵温度
  145. /// </summary>
  146. [MessagePack.IgnoreMember]
  147. [BsonIgnore]
  148. public float OilPumpTemperature =>Unsafe.As<Int16,float>(ref AnalogData[28]);
  149. /// <summary>
  150. /// 冷却水运行状态
  151. /// </summary>
  152. [MessagePack.IgnoreMember]
  153. [BsonIgnore]
  154. public CoolingWaterOperatingStatus CoolingWaterStatus => (CoolingWaterOperatingStatus)AnalogData[30];
  155. public string GetDataString()
  156. {
  157. return $"{Time:yyyy-MM-dd HH:mm:ss.fff},{OutputCurrent},{OutputVoltage},{ExcitationCurrent},{ExcitationVoltage},{ThreePhaseVoltage},{AbutmentTemperature0},{AbutmentTemperature1},{DCVoltage1},{DCVoltage2},{DCVoltage3},{DCVoltage4},{ExternalCirculatoryPressure}," +
  158. $"{MovingCoilPressure},{ExcitationPressure},{OilPumpPressure},{DynamicFlow},{ExcitationFlow},{MovingCoilWaterTemperature},{ExcitationWaterTemperature},{OilPumpTemperature},{Gain}";
  159. }
  160. }
  161. public class DataMangerModel : ModelBase
  162. {
  163. public string ShakerID = string.Empty;
  164. public List<DataMangerItemModel> Items = new List<DataMangerItemModel>();
  165. }
  166. }