private void HandleInput(byte[] data, int offset) { byte messageType = data[offset + 2]; if (messageType == Message.MessageTypeConfigResponse) { ConfigResponse response = new ConfigResponse(); response.Read(data, offset); //response.Dump(); if (_deviceState == DeviceState.Ready || response.RequestId == 0xffff) { HandleConfigResponse(response); } } else if (messageType == Message.MessageTypePortEvent) { PortEvent evt = new PortEvent(); //evt.Dump(); evt.Read(data, offset); if (_deviceState == DeviceState.Ready) { HandlePortEvent(evt); } } else { throw new WirekiteException(String.Format("Invalid message type ({0}) received", messageType)); } }