| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 | using System.Runtime.InteropServices;using System.Runtime.Serialization;namespace EPInterface.Data{    [DataContract]    public enum EPDState    {        [EnumMember]        UnSampling,    //硬件未进入采样        [EnumMember]        Running,       //计算中        [EnumMember]        Pause,         //暂停        [EnumMember]        Idle,    };    [DataContract]    public enum EPDEventType    {        [EnumMember]        Default = 0,    //基础信息        [EnumMember]        Info = 1,    //基础信息        [EnumMember]        Error,    //基础信息        [EnumMember]        Start,       //步骤 开始         [EnumMember]        Delay,       //步骤 延迟         [EnumMember]        Normalize,   //步骤                 [EnumMember]        Check,   //步骤 检查条件        [EnumMember]        EndPoint,   //步骤 触发        [EnumMember]        Stop,   //步骤 停止    };    [DataContract]    [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi)]    public struct HardwareInfo    {        [MarshalAs(UnmanagedType.U8)]        public ulong Ver;        [MarshalAs(UnmanagedType.U2)]        public ushort Pixes;        [MarshalAs(UnmanagedType.R8)]        public double FirstCoefficient;        [MarshalAs(UnmanagedType.R8)]        public double SecondCoefficient;        [MarshalAs(UnmanagedType.R8)]        public double ThirdCoefficient;        [MarshalAs(UnmanagedType.R8)]        public double Intercept;        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]        public char[] Serial;        [MarshalAs(UnmanagedType.U8)]        public ulong IntegrationTime;        [MarshalAs(UnmanagedType.U8)]        public ulong SamplingTime;        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)]        public double[] Wave;    }    [DataContract]    [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi)]    public struct RawDataItem    {        public static readonly int Size = Marshal.SizeOf(typeof(RawDataItem));        [MarshalAs(UnmanagedType.I8)]        public long Ticket;        [MarshalAs(UnmanagedType.I4)]    //累积次数        public int Counter;        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)]  //全光谱数据        public ushort[] RawData;        [MarshalAs(UnmanagedType.I4)]    //波段数据        public int RegionNum;        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]        public double[] RegionData;        [MarshalAs(UnmanagedType.I4)]    //趋势数据, 表达式        public int TrendNum;        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]        public double[] TrendData;    }    [DataContract]    public class CRawDataItem    {        [DataMember]        public long Ticket        {            get;set;        }        [DataMember]        public ushort[] RawData        { get;          set;        }        [DataMember]        public int RegionNum        {            get; set;        }        [DataMember]        public double[] RegionData        {            get;set;        }        [DataMember]        public int TrendNum        {            get;set;        }        [DataMember]        public double[] TrendData        {            get;set;        }        public CRawDataItem()        {            Ticket = 0;            RawData = new ushort[1024];            RegionNum = 32;            RegionData = new double[32];            TrendNum = 32;            TrendData = new double[32];        }    }}
 |