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
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
36typedef void * ZAF_ADS_Handle_t;
37
38// These following defines must be aligned with the structs in the private implementation
39// (made as individual defines in order to easier assert on each of them)
40#define ZAF_ADS_HEADER_SIZE 4
41#define ZAF_ADS_ELEMENT_SIZE 20
42
43// Calculate size of storage
44#define ZAF_ADS_STORAGE_SIZE(num_elements) (ZAF_ADS_HEADER_SIZE + (num_elements) * ZAF_ADS_ELEMENT_SIZE)
50#define ZAF_ADS_STORAGE(name, num_elements) union { void *align; uint8_t storage[ZAF_ADS_STORAGE_SIZE(num_elements)]; } name
51
61
70
80
90
107ZAF_ADS_Handle_t ZAF_ADS_Init (void* pStorage, uint8_t MaxNodeCount);
108
115bool ZAF_ADS_Delete(ZAF_ADS_Handle_t handle, uint8_t NodeID);
116
125 ZAF_ADS_Handle_t handle,
126 uint8_t NodeID,
127 security_key_t * pHighestClass);
128
139 ZAF_ADS_Handle_t handle,
140 uint8_t NodeID,
141 security_key_t HighestClass);
142
151 ZAF_ADS_Handle_t handle,
152 uint8_t NodeID,
153 e_ZAF_ADS_CommandClass_t commandClass);
154
166 ZAF_ADS_Handle_t handle,
167 uint8_t NodeID,
168 e_ZAF_ADS_CommandClass_t commandClass,
169 e_ZAF_ADS_CC_Capability_t CC_Capability);
170
171
178#endif /* ZAF_APPLICATIONUTILITIES_ZAF_ASSOCIATIONDATASTORE_H_ */
e_ZAF_ADS_CC_Capability_t
Definition ZAF_AssociationDataStore.h:75
e_ZAF_ADS_SecurityHighestClassState_t
Definition ZAF_AssociationDataStore.h:56
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:36
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:85
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:77
@ CC_CAPABILITY_NOT_SUPPORTED
The CC is NOT supported.
Definition ZAF_AssociationDataStore.h:78
@ CC_CAPABILITY_NOT_DISCOVERED
Support of the CC has not yet been discovered.
Definition ZAF_AssociationDataStore.h:76
@ SECURITY_HIGHEST_CLASS_DISCOVERED
The Security class has been discovered and is granted to me.
Definition ZAF_AssociationDataStore.h:59
@ SECURITY_HIGHEST_CLASS_DISCOVERED_NOT_GRANTED_TO_ME
The security class has been discovered but was not granted to me.
Definition ZAF_AssociationDataStore.h:58
@ SECURITY_HIGHEST_CLASS_NOT_DISCOVERED
Not discovered yet.
Definition ZAF_AssociationDataStore.h:57
@ ZAF_ADS_CC_MULTI_COMMAND
Command Class Multi Command.
Definition ZAF_AssociationDataStore.h:87
@ ZAF_ADS_MAX_CC
Must be the last element in this enum.
Definition ZAF_AssociationDataStore.h:88
@ ZAF_ADS_CC_SUPERVISION
Command Class Supervision.
Definition ZAF_AssociationDataStore.h:86
enum SECURITY_KEY security_key_t
Definition ZAF_AssociationDataStore.h:66
security_key_t securityKey
Definition ZAF_AssociationDataStore.h:67
e_ZAF_ADS_SecurityHighestClassState_t state
Definition ZAF_AssociationDataStore.h:68