DataItemDefine.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. using System.Runtime.InteropServices;
  2. using System.Runtime.Serialization;
  3. namespace EPInterface.Data
  4. {
  5. [DataContract]
  6. public enum EPDState
  7. {
  8. [EnumMember]
  9. UnSampling, //硬件未进入采样
  10. [EnumMember]
  11. Running, //计算中
  12. [EnumMember]
  13. Pause, //暂停
  14. [EnumMember]
  15. Idle,
  16. };
  17. [DataContract]
  18. public enum EPDEventType
  19. {
  20. [EnumMember]
  21. Default = 0, //基础信息
  22. [EnumMember]
  23. Info = 1, //基础信息
  24. [EnumMember]
  25. Error, //基础信息
  26. [EnumMember]
  27. Start, //步骤 开始
  28. [EnumMember]
  29. Delay, //步骤 延迟
  30. [EnumMember]
  31. Normalize, //步骤
  32. [EnumMember]
  33. Check, //步骤 检查条件
  34. [EnumMember]
  35. EndPoint, //步骤 触发
  36. [EnumMember]
  37. Stop, //步骤 停止
  38. };
  39. [DataContract]
  40. [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi)]
  41. public struct HardwareInfo
  42. {
  43. [MarshalAs(UnmanagedType.U8)]
  44. public ulong Ver;
  45. [MarshalAs(UnmanagedType.U2)]
  46. public ushort Pixes;
  47. [MarshalAs(UnmanagedType.R8)]
  48. public double FirstCoefficient;
  49. [MarshalAs(UnmanagedType.R8)]
  50. public double SecondCoefficient;
  51. [MarshalAs(UnmanagedType.R8)]
  52. public double ThirdCoefficient;
  53. [MarshalAs(UnmanagedType.R8)]
  54. public double Intercept;
  55. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
  56. public char[] Serial;
  57. [MarshalAs(UnmanagedType.U8)]
  58. public ulong IntegrationTime;
  59. [MarshalAs(UnmanagedType.U8)]
  60. public ulong SamplingTime;
  61. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)]
  62. public double[] Wave;
  63. }
  64. [DataContract]
  65. [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi)]
  66. public struct RawDataItem
  67. {
  68. public static readonly int Size = Marshal.SizeOf(typeof(RawDataItem));
  69. [MarshalAs(UnmanagedType.I8)]
  70. public long Ticket;
  71. [MarshalAs(UnmanagedType.I4)] //累积次数
  72. public int Counter;
  73. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)] //全光谱数据
  74. public ushort[] RawData;
  75. [MarshalAs(UnmanagedType.I4)] //波段数据
  76. public int RegionNum;
  77. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
  78. public double[] RegionData;
  79. [MarshalAs(UnmanagedType.I4)] //趋势数据, 表达式
  80. public int TrendNum;
  81. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
  82. public double[] TrendData;
  83. }
  84. [DataContract]
  85. public class CRawDataItem
  86. {
  87. [DataMember]
  88. public long Ticket
  89. {
  90. get;set;
  91. }
  92. [DataMember]
  93. public ushort[] RawData
  94. { get;
  95. set;
  96. }
  97. [DataMember]
  98. public int RegionNum
  99. {
  100. get; set;
  101. }
  102. [DataMember]
  103. public double[] RegionData
  104. {
  105. get;set;
  106. }
  107. [DataMember]
  108. public int TrendNum
  109. {
  110. get;set;
  111. }
  112. [DataMember]
  113. public double[] TrendData
  114. {
  115. get;set;
  116. }
  117. public CRawDataItem()
  118. {
  119. Ticket = 0;
  120. RawData = new ushort[1024];
  121. RegionNum = 32;
  122. RegionData = new double[32];
  123. TrendNum = 32;
  124. TrendData = new double[32];
  125. }
  126. }
  127. }