Developing with ZBOSS for Zigbee
Get Group Membership command definitions

Data Structures

struct  zb_zcl_groups_get_group_membership_req_s
 Get Group Membership command structure. More...
 
struct  zb_zcl_groups_get_group_membership_res_s
 Get Group Membership command response structure. More...
 

Macros

#define ZB_ZCL_GROUPS_GET_GROUP_MEMBERSHIP_REQ(data_buf, group_member_req)
 Parses Get Group Membership command and returns pointer to data request structure. If request contains invalid data, NULL is returned. More...
 
#define ZB_ZCL_GROUPS_GET_GROUP_MEMBERSHIP_RES(data_buf, group_member_res)
 Parses Get Group Membership command response and returns pointer to data response structure. If response contains invalid data, NULL is returned. More...
 
#define ZB_ZCL_GROUPS_INIT_GET_GROUP_MEMBERSHIP_REQ(buffer, ptr, def_resp, group_cnt)
 Initialize Get group membership command. More...
 
#define ZB_ZCL_GROUPS_ADD_ID_GET_GROUP_MEMBERSHIP_REQ(ptr, group_id)
 Add group id to command payload. More...
 
#define ZB_ZCL_GROUPS_SEND_GET_GROUP_MEMBERSHIP_REQ( buffer, ptr, addr, dst_addr_mode, dst_ep, ep, prfl_id, cb)
 Sends Get group membership command. More...
 

Typedefs

typedef struct zb_zcl_groups_get_group_membership_req_s zb_zcl_groups_get_group_membership_req_t
 Get Group Membership command structure.
 
typedef struct zb_zcl_groups_get_group_membership_res_s zb_zcl_groups_get_group_membership_res_t
 Get Group Membership command response structure.
 

Detailed Description

Both Get Group Membership command request and response have a complex array-style payload.

Examples
Get Group Membership request can be filled in as:
ZB_ZCL_GROUPS_SEND_GET_GROUP_MEMBERSHIP_REQ(buffer, cmd_ptr, DST_ADDR, DST_ADDR_MODE, ENDPOINT_C, ENDPOINT_ED, ZB_AF_HA_PROFILE_ID, NULL);
Get Group Membership response can be parsed as:
If there are more then one response record, macro call can be iterated.

Macro Definition Documentation

◆ ZB_ZCL_GROUPS_ADD_ID_GET_GROUP_MEMBERSHIP_REQ

#define ZB_ZCL_GROUPS_ADD_ID_GET_GROUP_MEMBERSHIP_REQ (   ptr,
  group_id 
)
Value:
{ \
ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, (group_id)); \
}

Add group id to command payload.

Parameters
ptr- command buffer pointer
group_id- group ID

◆ ZB_ZCL_GROUPS_GET_GROUP_MEMBERSHIP_REQ

#define ZB_ZCL_GROUPS_GET_GROUP_MEMBERSHIP_REQ (   data_buf,
  group_member_req 
)
Value:
{ \
zb_uint8_t i_tmp; \
zb_uint8_t cmd_size = ZB_ZCL_GET_GROUP_MEMBERSHIP_REQ_SIZE; \
\
(group_member_req) = (zb_buf_len(data_buf) >= cmd_size) ? \
\
if (group_member_req) \
{ \
cmd_size += sizeof(zb_uint16_t) * (group_member_req)->group_count; \
if (cmd_size <= zb_buf_len(data_buf)) \
{ \
for(i_tmp = 0; i_tmp < (group_member_req)->group_count; i_tmp++) \
{ \
ZB_ZCL_HTOLE16_INPLACE(&(group_member_req)->group_id[i_tmp]); \
} \
} \
else \
{ \
group_member_req = NULL; \
} \
} \
}

Parses Get Group Membership command and returns pointer to data request structure. If request contains invalid data, NULL is returned.

Parameters
data_buf- pointer to zb_buf_t buffer containing command request data
group_member_req- pointer to command request
Note
data_buf buffer should contain command request payload without ZCL header.

◆ ZB_ZCL_GROUPS_GET_GROUP_MEMBERSHIP_RES

#define ZB_ZCL_GROUPS_GET_GROUP_MEMBERSHIP_RES (   data_buf,
  group_member_res 
)
Value:
{ \
zb_uint8_t i; \
zb_uint8_t cmd_size = ZB_ZCL_GET_GROUP_MEMBERSHIP_RES_SIZE; \
\
(group_member_res) = (zb_buf_len(data_buf) >= cmd_size) ? \
\
if (group_member_res) \
{ \
cmd_size += sizeof(zb_uint16_t) * (group_member_res)->group_count; \
if (cmd_size <= zb_buf_len(data_buf)) \
{ \
for(i = 0; i < (group_member_res)->group_count; i++) \
{ \
ZB_ZCL_HTOLE16_INPLACE(&(group_member_res)->group_id[i]); \
} \
} \
else \
{ \
group_member_res = NULL; \
} \
} \
}

Parses Get Group Membership command response and returns pointer to data response structure. If response contains invalid data, NULL is returned.

Parameters
data_buf- pointer to zb_buf_t buffer containing command response data
group_member_res- pointer to command response
Note
data_buf buffer should contain command response payload without ZCL header.

◆ ZB_ZCL_GROUPS_INIT_GET_GROUP_MEMBERSHIP_REQ

#define ZB_ZCL_GROUPS_INIT_GET_GROUP_MEMBERSHIP_REQ (   buffer,
  ptr,
  def_resp,
  group_cnt 
)
Value:
{ \
ptr = ZB_ZCL_START_PACKET_REQ(buffer) \
ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_REQ_FRAME_CONTROL(ptr, def_resp) \
ZB_ZCL_CONSTRUCT_COMMAND_HEADER_REQ( \
ZB_ZCL_PACKET_PUT_DATA8(ptr, (group_cnt)); \
}

Initialize Get group membership command.

Parameters
bufferto put packet to
ptr- command buffer pointer
def_resp- enable/disable default response
group_cnt- group count

◆ ZB_ZCL_GROUPS_SEND_GET_GROUP_MEMBERSHIP_REQ

#define ZB_ZCL_GROUPS_SEND_GET_GROUP_MEMBERSHIP_REQ (   buffer,
  ptr,
  addr,
  dst_addr_mode,
  dst_ep,
  ep,
  prfl_id,
  cb 
)
Value:
{ \
ZB_ZCL_FINISH_PACKET(buffer, ptr) \
ZB_ZCL_SEND_COMMAND_SHORT( \
buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, ZB_ZCL_CLUSTER_ID_GROUPS, cb); \
}

Sends Get group membership command.

Parameters
bufferto place data to
ptr- pointer to the memory area after the command data end
addr- address to send packet to
dst_addr_mode- addressing mode
dst_ep- destination endpoint
ep- sending endpoint
prfl_id- profile identifier
cb- callback for getting command send status
ZB_AF_HA_PROFILE_ID
#define ZB_AF_HA_PROFILE_ID
Definition: zboss_api_af.h:287
ZB_ZCL_CMD_GROUPS_GET_GROUP_MEMBERSHIP
@ ZB_ZCL_CMD_GROUPS_GET_GROUP_MEMBERSHIP
Definition: zb_zcl_groups.h:89
ZB_ZCL_ENABLE_DEFAULT_RESPONSE
#define ZB_ZCL_ENABLE_DEFAULT_RESPONSE
Definition: zb_zcl_common.h:936
ZB_ZCL_GET_SEQ_NUM
#define ZB_ZCL_GET_SEQ_NUM()
Return next sequence number for ZCL frame.
Definition: zb_zcl_common.h:1349
ZB_ZCL_GROUPS_SEND_GET_GROUP_MEMBERSHIP_REQ
#define ZB_ZCL_GROUPS_SEND_GET_GROUP_MEMBERSHIP_REQ( buffer, ptr, addr, dst_addr_mode, dst_ep, ep, prfl_id, cb)
Sends Get group membership command.
Definition: zb_zcl_groups.h:531
ZB_ZCL_GROUPS_INIT_GET_GROUP_MEMBERSHIP_REQ
#define ZB_ZCL_GROUPS_INIT_GET_GROUP_MEMBERSHIP_REQ(buffer, ptr, def_resp, group_cnt)
Initialize Get group membership command.
Definition: zb_zcl_groups.h:503
ZB_ZCL_CLUSTER_ID_GROUPS
#define ZB_ZCL_CLUSTER_ID_GROUPS
Definition: zb_zcl_common.h:209
zb_buf_begin
#define zb_buf_begin(buf)
Definition: zboss_api_buf.h:344
zb_zcl_groups_get_group_membership_req_s
Get Group Membership command structure.
Definition: zb_zcl_groups.h:403
zb_uint16_t
unsigned short zb_uint16_t
Project-local 2-byte unsigned int type.
Definition: zb_types.h:153
zb_zcl_groups_get_group_membership_res_s
Get Group Membership command response structure.
Definition: zb_zcl_groups.h:450
ZB_ZCL_GROUPS_GET_GROUP_MEMBERSHIP_RES
#define ZB_ZCL_GROUPS_GET_GROUP_MEMBERSHIP_RES(data_buf, group_member_res)
Parses Get Group Membership command response and returns pointer to data response structure....
Definition: zb_zcl_groups.h:472
zb_buf_len
#define zb_buf_len(buf)
Definition: zboss_api_buf.h:362