Trident IoT Z-Wave SDK
 
Loading...
Searching...
No Matches
ZAF_CmdPublisher.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
12#ifndef _CMD_PUBLISHER_H_
13#define _CMD_PUBLISHER_H_
14
15#include <stdint.h>
16#include <stdbool.h>
17
25// These following defines must be aligned with the structs in the private implementation
26#define ZAF_CP_HEADER_SIZE 4
27#define ZAF_CP_ELEMENT_SIZE 16
28
29// Calculate size of storage
30#define ZAF_CP_STORAGE_SIZE(num_elements) (ZAF_CP_HEADER_SIZE + (num_elements) * ZAF_CP_ELEMENT_SIZE)
31
32// Statically allocate storage at a word boundary (or any other boundary if needed)
33#define ZAF_CP_STORAGE(name, num_elements) union { void *align; uint8_t storage[ZAF_CP_STORAGE_SIZE(num_elements)]; } name
34
36typedef void * CP_Handle_t;
37
44typedef void (*zaf_cp_subscriberFunction_t)(void *pSubscriberContext, void* pRxPackage);
45
54CP_Handle_t ZAF_CP_Init(void *pStorage, uint8_t numSubscribers);
55
65 void* pSubscriberContext,
67
78 void* pSubscriberContext,
80 uint16_t CmdClass);
81
93 void* pSubscriberContext,
95 uint16_t CmdClass,
96 uint8_t Cmd);
97
107 void* pSubscriberContext,
109
120 void* pSubscriberContext,
122 uint16_t CmdClass);
134 void* pSubscriberContext,
136 uint16_t CmdClass,
137 uint8_t Cmd);
138
147void ZAF_CP_CommandPublish(CP_Handle_t handle, void* pRxPackage);
148
155#endif /* _CMD_PUBLISHER_H_ */
bool ZAF_CP_UnsubscribeToAll(CP_Handle_t handle, void *pSubscriberContext, zaf_cp_subscriberFunction_t pFunction)
bool ZAF_CP_SubscribeToCmd(CP_Handle_t handle, void *pSubscriberContext, zaf_cp_subscriberFunction_t pFunction, uint16_t CmdClass, uint8_t Cmd)
void * CP_Handle_t
Definition ZAF_CmdPublisher.h:36
void ZAF_CP_CommandPublish(CP_Handle_t handle, void *pRxPackage)
CP_Handle_t ZAF_CP_Init(void *pStorage, uint8_t numSubscribers)
bool ZAF_CP_SubscribeToAll(CP_Handle_t handle, void *pSubscriberContext, zaf_cp_subscriberFunction_t pFunction)
bool ZAF_CP_UnsubscribeToCmd(CP_Handle_t handle, void *pSubscriberContext, zaf_cp_subscriberFunction_t pFunction, uint16_t CmdClass, uint8_t Cmd)
bool ZAF_CP_SubscribeToCC(CP_Handle_t handle, void *pSubscriberContext, zaf_cp_subscriberFunction_t pFunction, uint16_t CmdClass)
bool ZAF_CP_UnsubscribeToCC(CP_Handle_t handle, void *pSubscriberContext, zaf_cp_subscriberFunction_t pFunction, uint16_t CmdClass)
void(* zaf_cp_subscriberFunction_t)(void *pSubscriberContext, void *pRxPackage)
Definition ZAF_CmdPublisher.h:44