private IoProperty(int id, byte size, byte status, long value) { _id = id; _size = size; _status = status; _type = IoPropertyType.Number; _valueHigh = 0L; _valueLow = value; }
private unsafe IoProperty(int id, byte status, byte[] buffer) { if (buffer == null) { throw new ArgumentNullException(nameof(buffer)); } if (16 < buffer.Length) { throw new ArgumentException("The buffer size exceedes maximum buffer size of 16."); } _id = id; _status = status; _valueHigh = 0L; _valueLow = 0L; _type = IoPropertyType.Buffer; _size = (byte)buffer.Length; fixed(byte *numPtr = _buffer) Marshal.Copy(buffer, 0, new IntPtr((void *)numPtr), buffer.Length); }