Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }