Trident IoT Z-Wave SDK
Loading...
Searching...
No Matches
ZAF_AssociationDataStore.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Silicon Laboratories Inc. <https://www.silabs.com/>
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
15
16#ifndef ZAF_APPLICATIONUTILITIES_ZAF_ASSOCIATIONDATASTORE_H_
17#define ZAF_APPLICATIONUTILITIES_ZAF_ASSOCIATIONDATASTORE_H_
18
19#include <stdbool.h>
20#include <stdint.h>
21#include <ZW_security_api.h>
22
29
35typedef void * ZAF_ADS_Handle_t;
36
37// These following defines must be aligned with the structs in the private implementation
38// (made as individual defines in order to easier assert on each of them)
39#define ZAF_ADS_HEADER_SIZE 4
40#define ZAF_ADS_ELEMENT_SIZE 20
41
42// Calculate size of storage
43#define ZAF_ADS_STORAGE_SIZE(num_elements) (ZAF_ADS_HEADER_SIZE + (num_elements) * ZAF_ADS_ELEMENT_SIZE)
49#define ZAF_ADS_STORAGE(name, num_elements) union { void *align; uint8_t storage[ZAF_ADS_STORAGE_SIZE(num_elements)]; } name
50
59
67
76
85
102ZAF_ADS_Handle_t ZAF_ADS_Init (void* pStorage, uint8_t MaxNodeCount);
103
110bool ZAF_ADS_Delete(ZAF_ADS_Handle_t handle, uint8_t NodeID);
111
120 ZAF_ADS_Handle_t handle,
121 uint8_t NodeID,
122 security_key_t * pHighestClass);
123
134 ZAF_ADS_Handle_t handle,
135 uint8_t NodeID,
136 security_key_t HighestClass);
137
146 ZAF_ADS_Handle_t handle,
147 uint8_t NodeID,
148 e_ZAF_ADS_CommandClass_t commandClass);
149
161 ZAF_ADS_Handle_t handle,
162 uint8_t NodeID,
163 e_ZAF_ADS_CommandClass_t commandClass,
164 e_ZAF_ADS_CC_Capability_t CC_Capability);
165
170
171#endif /* ZAF_APPLICATIONUTILITIES_ZAF_ASSOCIATIONDATASTORE_H_ */
e_ZAF_ADS_CC_Capability_t
Definition ZAF_AssociationDataStore.h:71
e_ZAF_ADS_SecurityHighestClassState_t
Definition ZAF_AssociationDataStore.h:54
bool ZAF_ADS_SetNodeHighestSecurityClass(ZAF_ADS_Handle_t handle, uint8_t NodeID, security_key_t HighestClass)
void * ZAF_ADS_Handle_t
Definition ZAF_AssociationDataStore.h:35
bool ZAF_ADS_Delete(ZAF_ADS_Handle_t handle, uint8_t NodeID)
ZAF_ADS_Handle_t ZAF_ADS_Init(void *pStorage, uint8_t MaxNodeCount)
e_ZAF_ADS_SecurityHighestClassState_t ZAF_ADS_GetNodeHighestSecurityClass(ZAF_ADS_Handle_t handle, uint8_t NodeID, security_key_t *pHighestClass)
bool ZAF_ADS_SetNodeIsSupportingCC(ZAF_ADS_Handle_t handle, uint8_t NodeID, e_ZAF_ADS_CommandClass_t commandClass, e_ZAF_ADS_CC_Capability_t CC_Capability)
e_ZAF_ADS_CommandClass_t
Definition ZAF_AssociationDataStore.h:80
e_ZAF_ADS_CC_Capability_t ZAF_ADS_IsNodeSupportingCC(ZAF_ADS_Handle_t handle, uint8_t NodeID, e_ZAF_ADS_CommandClass_t commandClass)
@ CC_CAPABILITY_SUPPORTED
The CC is supported.
Definition ZAF_AssociationDataStore.h:73
@ CC_CAPABILITY_NOT_SUPPORTED
The CC is NOT supported.
Definition ZAF_AssociationDataStore.h:74
@ CC_CAPABILITY_NOT_DISCOVERED
Support of the CC has not yet been discovered.
Definition ZAF_AssociationDataStore.h:72
@ SECURITY_HIGHEST_CLASS_DISCOVERED
The Security class has been discovered and is granted to me.
Definition ZAF_AssociationDataStore.h:57
@ SECURITY_HIGHEST_CLASS_DISCOVERED_NOT_GRANTED_TO_ME
The security class has been discovered but was not granted to me.
Definition ZAF_AssociationDataStore.h:56
@ SECURITY_HIGHEST_CLASS_NOT_DISCOVERED
Not discovered yet.
Definition ZAF_AssociationDataStore.h:55
@ ZAF_ADS_CC_MULTI_COMMAND
Command Class Multi Command.
Definition ZAF_AssociationDataStore.h:82
@ ZAF_ADS_MAX_CC
Must be the last element in this enum.
Definition ZAF_AssociationDataStore.h:83
@ ZAF_ADS_CC_SUPERVISION
Command Class Supervision.
Definition ZAF_AssociationDataStore.h:81
enum SECURITY_KEY security_key_t
Definition ZAF_AssociationDataStore.h:63
security_key_t securityKey
Definition ZAF_AssociationDataStore.h:64
e_ZAF_ADS_SecurityHighestClassState_t state
Definition ZAF_AssociationDataStore.h:65