public DataBlockContainer(int commandCode, byte[] data) { Header = new ContainerHeader(); Header.Code = commandCode; Header.ContainerType = ContainerType.DataBlock; Header.PayloadLength = data.Length; Payload = data; }
/// <summary> /// Read response block from stream /// </summary> /// <param name="header">the container header</param> /// <param name="payload">data after header</param> public ResponseBlockContainer(ContainerHeader header, Stream payload) { if (payload == null) throw new ArgumentNullException("payload"); Header = header; readParameters(payload); }
public DataBlockContainer(int commandCode, byte[] data) { Header = new ContainerHeader(); Header.Code = commandCode; Header.ContainerType = ContainerType.DataBlock; Header.PayloadLength = data.Length; Payload = data; }
public DataBlockContainer(ContainerHeader header, Stream payload, StillImageDevice.TransferCallback callback) { Header = header; Payload = new byte[Header.PayloadLength]; // int readnum = payload.Read(Payload, 0, Header.PayloadLength); int numBytes = 0; while (numBytes != Header.PayloadLength) { numBytes += payload.Read(Payload, numBytes, Header.PayloadLength - numBytes); if (callback != null) callback(Header.PayloadLength, numBytes); } }
public DataBlockContainer(ContainerHeader header, Stream payload, StillImageDevice.TransferCallback callback) { Header = header; Payload = new byte[Header.PayloadLength]; // int readnum = payload.Read(Payload, 0, Header.PayloadLength); int numBytes = 0; while (numBytes != Header.PayloadLength) { numBytes += payload.Read(Payload, numBytes, Header.PayloadLength - numBytes); if (callback != null) { callback((uint)Header.PayloadLength, (uint)numBytes); } } }
protected Container getContainer(bool synchronized, StillImageDevice.TransferCallback callback) { var header = new ContainerHeader(_inerStream); switch (header.ContainerType) { case ContainerType.DataBlock: return(new DataBlockContainer(header, _inerStream, callback)); case ContainerType.ResponseBlock: if (synchronized) { Monitor.Exit(_commandLock); } return(new ResponseBlockContainer(header, _inerStream)); //Give current instance as stream, because we need keep track on the distance to next header case ContainerType.CommandBlock: case ContainerType.EventBlock: throw new Exception("Invalid container type. " + header.ContainerType); } throw new Exception("Unkown container type"); }
protected Container getContainer(bool synchronized, StillImageDevice.TransferCallback callback) { var header = new ContainerHeader(_inerStream); switch (header.ContainerType) { case ContainerType.DataBlock: return new DataBlockContainer(header, _inerStream, callback); case ContainerType.ResponseBlock: if (synchronized) Monitor.Exit(_commandLock); return new ResponseBlockContainer(header, _inerStream); //Give current instance as stream, because we need keep track on the distance to next header case ContainerType.CommandBlock: case ContainerType.EventBlock: throw new Exception("Invalid container type. " + header.ContainerType); } throw new Exception("Unkown container type"); }
protected Container(ContainerHeader header) { Header = header; }
public ParameterContainer(uint[] parameters) { Header = new ContainerHeader(); Parameters = parameters; Header.PayloadLength = payloadLength; }