static SendMessageResult ReadResponseHeader(InsteonBridgeStream stream, byte[] bytes, int timeout) { byte[] rx = stream.ReadBytes(bytes.Length, timeout); if (rx?.Length == 0) { return(ResponseNull); } if (rx[0] == Message.NAK) { return(ResponseNak); } if (!Enumerable.SequenceEqual(bytes, rx)) { return(ResponseInvalid); } return(OK); }
static SendMessageResult ReadResponse(InsteonBridgeStream stream, byte[] msg, int timeout, int responseLen, out byte[] response) { SendMessageResult r = ReadResponseHeader(stream, msg, timeout); if (r != OK) { response = null; return(r); } response = stream.ReadBytes(responseLen, timeout); if (response == null) { return(ResponseNull); } if (response.Length < responseLen) { return(ResponseInvalid); } return(OK); }