Macros

#define EMBER_ZCL_URI_MAX_LENGTH 120
#define EMBER_ZCL_URI_PATH_MAX_LENGTH 29
#define EMBER_ZCL_URI_PATH_CLUSTER_ID_MAX_LENGTH 11
#define EMBER_ZCL_URI_PATH_MANUFACTURER_CODE_CLUSTER_ID_SEPARATOR '_'
#define EMBER_ZCL_STRING_OVERHEAD 1
#define EMBER_ZCL_STRING_LENGTH_MAX 0xFE
#define EMBER_ZCL_STRING_LENGTH_INVALID 0xFF
#define EMBER_ZCL_LONG_STRING_OVERHEAD 2
#define EMBER_ZCL_LONG_STRING_LENGTH_MAX 0xFFFE
#define EMBER_ZCL_LONG_STRING_LENGTH_INVALID 0xFFFF

Functions

uint8_t emberZclStringLength (const uint8_t *buffer)
uint8_t emberZclStringSize (const uint8_t *buffer)
uint16_t emberZclLongStringLength (const uint8_t *buffer)
uint16_t emberZclLongStringSize (const uint8_t *buffer)

Detailed Description

See zcl-core-types.h for source code.

Macro Definition Documentation

#define EMBER_ZCL_LONG_STRING_LENGTH_INVALID   0xFFFF

Invalid long string length.

#define EMBER_ZCL_LONG_STRING_LENGTH_MAX   0xFFFE

Maximum long string length.

#define EMBER_ZCL_LONG_STRING_OVERHEAD   2

Long string overhead.

#define EMBER_ZCL_STRING_LENGTH_INVALID   0xFF

Invalid string length.

#define EMBER_ZCL_STRING_LENGTH_MAX   0xFE

Maximum string length.

#define EMBER_ZCL_STRING_OVERHEAD   1

String overhead.

#define EMBER_ZCL_URI_MAX_LENGTH   120

The longest ZCL/IP URI is: coaps://nih:sha-256;<uid>:PPPPP/zcl/g/GGGG/RMMMM_CCCC/a/AAAA where <uid> is a 256-bit UID represented as 64 hexadecimal characters, PPPPP is a 16-bit UDP port in decimal, GGGG is the 16-bit group ID in hexadecimal, R is c or s for client or server, MMMM is the 16-bit manufacturer code in hexadecimal, CCCC is the 16-bit cluster ID in hexadecimal, and AAAA is the 16-bit attribute ID in hexadecimal. An extra byte is reserved for a null terminator.

#define EMBER_ZCL_URI_PATH_CLUSTER_ID_MAX_LENGTH   11

The longest cluster ID in a ZCL/IP URI path is manufacturer-specific: RMMMM_CCCC where R is c or s for client or server, MMMM is the 16-bit manufacturer code, and CCCC is the 16-bit cluster ID. An extra byte is reserved for a null terminator.

#define EMBER_ZCL_URI_PATH_MANUFACTURER_CODE_CLUSTER_ID_SEPARATOR   '_'

Manufacturer codes, if present, are separated from the cluster ID by an underscore.

#define EMBER_ZCL_URI_PATH_MAX_LENGTH   29

The longest ZCL/IP URI path is a manufacturer-specific attribute request sent to a group: zcl/g/GGGG/RMMMM_CCCC/a/AAAA where GGGG is the 16-bit group ID, R is c or s for client or server, MMMM is the 16-bit manufacturer code, CCCC is the 16-bit cluster ID, and AAAA is the 16-bit attribute ID. An extra byte is reserved for a null terminator.

Function Documentation

uint16_t emberZclLongStringLength ( const uint8_t * buffer )

This function returns the length of the octet or character data in a given long string.

Parameters
buffer string pointer
Returns
length of string
uint16_t emberZclLongStringSize ( const uint8_t * buffer )

This function returns the size of a given long string including overhead and data.

Parameters
buffer string pointer
Returns
size of string
uint8_t emberZclStringLength ( const uint8_t * buffer )

This function returns the length of the octet or character data in a given string.

Parameters
buffer string pointer
Returns
length of string
uint8_t emberZclStringSize ( const uint8_t * buffer )

This function returns the size of a given string including overhead and data.

Parameters
buffer string pointer
Returns
size of string