Z-Wave Protocol Controller Reference
zwave_command_class_agi.h
Go to the documentation of this file.
1/******************************************************************************
2 * # License
3 * <b>Copyright 2021 Silicon Laboratories Inc. www.silabs.com</b>
4 ******************************************************************************
5 * The licensor of this software is Silicon Laboratories Inc. Your use of this
6 * software is governed by the terms of Silicon Labs Master Software License
7 * Agreement (MSLA) available at
8 * www.silabs.com/about-us/legal/master-software-license-agreement. This
9 * software is distributed to you in Source Code format and is governed by the
10 * sections of the MSLA applicable to Source Code.
11 *
12 *****************************************************************************/
13
22#ifndef ZWAVE_COMMAND_CLASS_AGI_H
23#define ZWAVE_COMMAND_CLASS_AGI_H
24
25#include "sl_status.h"
28#include "ZW_classcmd.h"
29
32#define MAX_SUPPORTED_NODES_PER_GROUP 10
33
35#define NUMBER_OF_SUPPORTED_GROUPS 1
36
39#define AGI_NA_PROFILE 0x0000
40
42#define LIFELINE_GROUP_ID 1
43#define AGI_LIFELINE_PROFILE 0x0001
44#define LIFELINE_NAME "Lifeline"
45
48#define AGI_RESERVED_PROFILE 0xFFFF
49
50// Profile values for AGI
51typedef uint32_t agi_profile_t;
52
54#define AGI_INFO_REPORT_GROUP_COUNT_MASK 0x3F
57#define MAX_GROUP_NAME_SIZE ATTRIBUTE_STORE_MAXIMUM_VALUE_LENGTH
58// defining Association Group Name Report frame
61 uint8_t command;
63 uint8_t name_length;
66
67// defining Association Group Info Report frame
70 uint8_t command;
71 uint8_t properties;
72 VG_ASSOCIATION_GROUP_INFO_REPORT_VG vg_ass_group_info[MAX_GROUP_CONTENT_SIZE];
74
75// defining Association Group Command List Report frame
78 uint8_t command;
80 uint8_t list_length;
83
84#ifdef __cplusplus
85extern "C" {
86#endif
87
99
112 association_group_id_t group_id);
113
126 association_group_id_t group_id,
127 zwave_command_class_t command_class,
128 zwave_command_t command);
129
142 association_group_id_t group_id,
143 zwave_command_class_t command_class,
144 zwave_command_t command);
145
162 zwave_command_class_t command_class, zwave_command_t command);
163
177 association_group_id_t group_id);
178
179#ifdef __cplusplus
180}
181#endif
182
183#endif //ZWAVE_COMMAND_CLASS_AGI_H
void zwave_command_class_agi_request_to_establish_association(zwave_command_class_t command_class, zwave_command_t command)
Registers a Command Class / Command pair that we want to make sure to receive via Associations.
sl_status_t zwave_command_class_agi_add_group_commands(association_group_id_t group_id, zwave_command_class_t command_class, zwave_command_t command)
Lets a component register commands that it sends via an association group.
uint32_t agi_profile_t
Definition: zwave_command_class_agi.h:51
agi_profile_t zwave_command_class_agi_get_group_profile(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id)
Lets a component register commands that it sends via an association group.
bool zwave_command_class_agi_is_command_allowed_for_group(association_group_id_t group_id, zwave_command_class_t command_class, zwave_command_t command)
Verifies if a Command Class/Command pair is allowed for an Association group.
struct association_group_name_report_frame association_group_name_report_frame_t
struct association_group_command_list_report_frame association_group_command_list_report_frame_t
sl_status_t zwave_command_class_agi_init()
Setup fixture for the Association Group Information (AGI) Command Class.
bool zwave_command_class_agi_group_contains_listeners(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id)
Verifies if a Group ID under a NodeID/Endpoint sends some commands that we want to receive.
struct association_group_info_report_frame association_group_info_report_frame_t
uint32_t sl_status_t
Definition: sl_status.h:139
#define MAX_GROUP_CONTENT_SIZE
Definition: zwave_command_class_association_internals.h:39
uint8_t association_group_id_t
‍Association Group ID Type
Definition: zwave_command_class_association_types.h:49
uint16_t zwave_command_class_t
Definition: zwave_generic_types.h:29
uint8_t zwave_command_t
Definition: zwave_generic_types.h:30
uint8_t zwave_endpoint_id_t
Z-Wave Endpoint ID type.
Definition: zwave_node_id_definitions.h:125
uint16_t zwave_node_id_t
Z-Wave NodeID type.
Definition: zwave_node_id_definitions.h:84
SL Status Codes.
Definition: zwave_command_class_agi.h:76
uint8_t command_list[MAX_GROUP_CONTENT_SIZE]
Definition: zwave_command_class_agi.h:81
uint8_t command
Definition: zwave_command_class_agi.h:78
association_group_id_t grouping_identifier
Definition: zwave_command_class_agi.h:79
uint8_t list_length
Definition: zwave_command_class_agi.h:80
uint8_t command_class
Definition: zwave_command_class_agi.h:77
Definition: zwave_command_class_agi.h:68
uint8_t properties
Definition: zwave_command_class_agi.h:71
uint8_t command_class
Definition: zwave_command_class_agi.h:69
uint8_t command
Definition: zwave_command_class_agi.h:70
VG_ASSOCIATION_GROUP_INFO_REPORT_VG vg_ass_group_info[MAX_GROUP_CONTENT_SIZE]
Definition: zwave_command_class_agi.h:72
Definition: zwave_command_class_agi.h:59
uint8_t command
Definition: zwave_command_class_agi.h:61
uint8_t name[MAX_GROUP_CONTENT_SIZE]
Definition: zwave_command_class_agi.h:64
uint8_t command_class
Definition: zwave_command_class_agi.h:60
association_group_id_t grouping_identifier
Definition: zwave_command_class_agi.h:62
uint8_t name_length
Definition: zwave_command_class_agi.h:63
const zwave_endpoint_id_t endpoint_id
const zwave_node_id_t node_id