Data Structures

struct EmberZclGroupEntry_t

Macros

#define EMBER_ZCL_GROUP_ALL_ENDPOINTS 0xFFFF
#define EMBER_ZCL_GROUP_MIN 0x0001
#define EMBER_ZCL_GROUP_MAX 0xFFF7
#define EMBER_ZCL_GROUP_NULL 0x0000
#define EMBER_ZCL_GROUP_ASSIGNMENT_MODE_AUTO_MIN 0x00
#define EMBER_ZCL_GROUP_ASSIGNMENT_MODE_AUTO_MAX 0x10
#define EMBER_ZCL_GROUP_ASSIGNMENT_MODE_MANUAL 0xFE
#define EMBER_ZCL_GROUP_ASSIGNMENT_MODE_NULL 0xFF
#define EMBER_ZCL_MAX_GROUP_NAME_LENGTH 0

Typedefs

typedef uint16_t EmberZclGroupId_t

Functions

bool emberZclIsEndpointInGroup ( EmberZclEndpointId_t endpointId, EmberZclGroupId_t groupId)
bool emberZclIsEndpointAndAddrInGroup ( EmberZclEndpointId_t endpointId, const EmberIpv6Address *dstAddr, EmberZclGroupId_t groupId)
bool emberZclGetGroupName ( EmberZclEndpointId_t endpointId, EmberZclGroupId_t groupId, uint8_t *groupName, uint8_t *groupNameLength)
EmberZclStatus_t emberZclAddEndpointToGroup ( EmberZclEndpointId_t endpointId, EmberZclGroupId_t groupId, const uint8_t *groupName, uint8_t groupNameLength, uint8_t assignmentMode, const uint8_t *groupAddress, uint16_t groupUdpPort)
EmberZclStatus_t emberZclRemoveEndpointFromGroup ( EmberZclEndpointId_t endpointId, EmberZclGroupId_t groupId)
EmberZclStatus_t emberZclRemoveEndpointFromAllGroups ( EmberZclEndpointId_t endpointId)
EmberZclStatus_t emberZclRemoveGroup ( EmberZclGroupId_t groupId)
EmberZclStatus_t emberZclRemoveAllGroups (void)

Detailed Description

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

See zcl-core.h for source code.

Macro Definition Documentation

#define EMBER_ZCL_GROUP_ALL_ENDPOINTS   0xFFFF

A group identifier for the all-endpoints (endpoint broadcast) group.

All endpoints are always members of this group. This group cannot be removed and no endpoint can be removed from it.

#define EMBER_ZCL_GROUP_ASSIGNMENT_MODE_AUTO_MAX   0x10

Upper range for the automatic address assignment mode

#define EMBER_ZCL_GROUP_ASSIGNMENT_MODE_AUTO_MIN   0x00

Lower range for the automatic address assignment mode

#define EMBER_ZCL_GROUP_ASSIGNMENT_MODE_MANUAL   0xFE

Manual address assignment mode

#define EMBER_ZCL_GROUP_ASSIGNMENT_MODE_NULL   0xFF

Value representing no address assignment

#define EMBER_ZCL_GROUP_MAX   0xFFF7

A maximum group identifier value.

#define EMBER_ZCL_GROUP_MIN   0x0001

A minimum group identifier value.

#define EMBER_ZCL_GROUP_NULL   0x0000

A distinguished value that represents a null (invalid) group identifier.

#define EMBER_ZCL_MAX_GROUP_NAME_LENGTH   0

Typedef Documentation

typedef uint16_t EmberZclGroupId_t

A group identifier.

Function Documentation

EmberZclStatus_t emberZclAddEndpointToGroup ( EmberZclEndpointId_t endpointId,
EmberZclGroupId_t groupId,
const uint8_t * groupName,
uint8_t groupNameLength,
uint8_t assignmentMode,
const uint8_t * groupAddress,
uint16_t groupUdpPort
)

This function adds an endpoint to a group.

Parameters
endpointId An endpoint identifier
groupId A group identifier
groupName A pointer to an array containing name of group
groupNameLength Length of group name array (groupName is ignored if this length is 0)
assignmentMode Assignment Mode parameter of the "Add Group" command. If set to 0xff groupAddress and groupUdpPort should be ingnored.
groupAddress Pointer to an array containing the "Multicats IPv6 Address" parameter passed to the "Add Group" command: based on the assignment mode this could be the full address, flag bits or NULL.
groupUdpPort UDP port number that group should be listening on, zero value means the group will listen on EMBER_COAP_PORT and EMBER_COAP_SECURE_PORT.
Returns
bool emberZclGetGroupName ( EmberZclEndpointId_t endpointId,
EmberZclGroupId_t groupId,
uint8_t * groupName,
uint8_t * groupNameLength
)

This function gets a group name and its length.

Parameters
endpointId An endpoint identifier
groupId A group identifier
groupName An array pointer which will contain the group name
groupNameLength A pointer which will contain the group name length
Returns
true if group name was retrieved successfully, false otherwise.
bool emberZclIsEndpointAndAddrInGroup ( EmberZclEndpointId_t endpointId,
const EmberIpv6Address * dstAddr,
EmberZclGroupId_t groupId
)

This function returns TRUE if the supplied endpoint is a member of the group and the supplied address is associated with the group. The following addresses are automatically considered associated with any group:

  • Any unicast IPv6 address
  • All CoAP Nodes IPv6 address
  • All Nodes IPv6 address
  • The multicast IPv6 address constructed from the group ID according to the ZCL Base Device Behavior Specification
Parameters
endpointId An endpoint identifier
dstAddr IPv6 address to be checked
groupId A group identifier
Returns
true if the endpoint is a member of the group and the address is associated with the group, false otherwise.
bool emberZclIsEndpointInGroup ( EmberZclEndpointId_t endpointId,
EmberZclGroupId_t groupId
)

This function determines if an endpoint is a member of a group.

Parameters
endpointId An endpoint identifier
groupId A group identifier
Returns
true if the endpoint is a member of the group, false otherwise.
EmberZclStatus_t emberZclRemoveAllGroups ( void )

This function removes all groups.

Returns
EmberZclStatus_t emberZclRemoveEndpointFromAllGroups ( EmberZclEndpointId_t endpointId )

This function removes an endpoint from all groups to which it belongs.

Parameters
endpointId An endpoint identifier
Returns
EmberZclStatus_t emberZclRemoveEndpointFromGroup ( EmberZclEndpointId_t endpointId,
EmberZclGroupId_t groupId
)

This function removes an endpoint from a group.

Parameters
endpointId An endpoint identifier
groupId A group identifier
Returns
EmberZclStatus_t emberZclRemoveGroup ( EmberZclGroupId_t groupId )

This function removes a group.

Parameters
groupId A group identifier
Returns