Module: E3DCMqtt::RSCP
- Defined in:
- lib/e3dc_mqtt/rscp/tags.rb,
lib/e3dc_mqtt/rscp/frame.rb,
lib/e3dc_mqtt/rscp/client.rb,
lib/e3dc_mqtt/rscp/errors.rb,
lib/e3dc_mqtt/rscp/message.rb,
lib/e3dc_mqtt/rscp/constants.rb,
lib/e3dc_mqtt/rscp/data_type.rb,
lib/e3dc_mqtt/rscp/rijndael256.rb
Defined Under Namespace
Modules: DataType, Frame, MessageCodec, Rijndael256, Tags Classes: AuthenticationFailed, Client, DataLimitExceeded, DataTypeMismatch, Error, InvalidControl, InvalidCrc, InvalidFrameLength, InvalidMagic, Message, ProtocolVersionMismatch, UnknownDataType
Constant Summary collapse
- MAGIC =
0xDCE3- VERSION_1_0 =
0b0001- FRAME_MAGIC_SIZE =
2- FRAME_CTRL_SIZE =
2- FRAME_TIME_SIZE =
12- FRAME_LENGTH_SIZE =
2- FRAME_HEADER_SIZE =
FRAME_MAGIC_SIZE + FRAME_CTRL_SIZE + FRAME_TIME_SIZE + FRAME_LENGTH_SIZE
- FRAME_CRC_SIZE =
4- FRAME_MAX_DATA_SIZE =
0xFFFF- DATA_TAG_SIZE =
4- DATA_DATATYPE_SIZE =
1- DATA_LENGTH_SIZE =
2- DATA_HEADER_SIZE =
DATA_TAG_SIZE + DATA_DATATYPE_SIZE + DATA_LENGTH_SIZE
- DATA_MAX_DATA_SIZE =
FRAME_MAX_DATA_SIZE - DATA_HEADER_SIZE
- CRYPT_BLOCK_SIZE =
32- CRYPT_KEY_SIZE =
32- CRYPT_KEY_PAD =
0xFF- CRYPT_IV_PAD =
0xFF- CRYPT_BLOCK_PAD =
0x00- CTRL_VERSION_SHIFT =
Control field layout (little-endian uint16):
bits 8..11 -> version (0b0001 = 1.0) bit 12 -> CRC flag 8- CTRL_VERSION_MASK =
0b0000_1111_0000_0000- CTRL_CRC_SHIFT =
12- CTRL_CRC_MASK =
0b0001_0000_0000_0000- CTRL_ALLOWED_MASK =
CTRL_VERSION_MASK | CTRL_CRC_MASK