20 case WaitingForPreamble:
24 _state = ReadingLength;
30 _lengthBytes[_lengthBytesRead++] = byte;
31 _buffer[_bytesRead++] = byte;
32 if (_lengthBytesRead == 2) {
33 _messageLength = ((_lengthBytes[0] & 0x03) << 8) | _lengthBytes[1];
34 if (_messageLength > 0 && _messageLength <= kMaxPayloadLength) {
35 _state = ReadingMessage;
43 if (_bytesRead < kHeaderSize + kMaxPayloadLength) {
44 _buffer[_bytesRead++] = byte;
46 if (_bytesRead >= _messageLength + kHeaderSize) {
53 _crcBytes[_crcBytesRead++] = byte;