Trident IoT Z-Wave SDK
Loading...
Searching...
No Matches
ZAF_types.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
14
15#ifndef ZAF_APPLICATIONUTILITIES_ZAF_TYPES_H_
16#define ZAF_APPLICATIONUTILITIES_ZAF_TYPES_H_
17
18#include <ZW_security_api.h>
19#include <ZW_classcmd.h>
20#include <ZW_transport_api.h>
21
28
37
47
54typedef struct {
55 uint8_t nodeId;
58 uint8_t endpoint : 7;
61 uint8_t BitAddress : 1;
63
76
80typedef struct {
81 uint8_t multichanCmdEncap[4]; //4 = sizeof(ZW_MULTI_CHANNEL_CMD_ENCAP_V2_FRAME) - sizeof(ALL_EXCEPT_ENCAP)
82 ZW_SUPERVISION_GET_FRAME supervisionGet;
83 ZW_APPLICATION_TX_BUFFER appTxBuf;
85
96
108
112typedef struct {
113 uint8_t cmdClass;
114 uint8_t cmd;
115} ccc_pair_t;
116
122
126typedef struct {
127 uint8_t profile_MS;
128 uint8_t profile_LS;
130
135
144
150
161
174
179
183typedef void (*cc_handler_t)(void); // Generic handler
184
188typedef received_frame_status_t(*cc_handler_v1_t)(RECEIVE_OPTIONS_TYPE_EX *, ZW_APPLICATION_TX_BUFFER *, uint8_t);
189
195 ZW_APPLICATION_TX_BUFFER *,
196 uint8_t,
197 ZW_APPLICATION_TX_BUFFER *,
198 uint8_t *);
199
208
212typedef struct _cc_handler_output_t {
213 ZW_APPLICATION_TX_BUFFER * frame;
214 uint8_t length;
215 uint8_t duration;
217
224
232typedef void(* basic_set_mapper_t)(ZW_APPLICATION_TX_BUFFER * p_frame);
233
243typedef void(* basic_get_mapper_t)(uint8_t endpoint, uint8_t * p_current_value, uint8_t * p_target_value, uint8_t * p_duration);
244
245typedef void (*cc_init_function_t)(void); // Generic init function
246typedef void (*cc_reset_function_t)(void); // Generic reset function
247
252typedef uint8_t(*lifeline_report_get_t)(cc_group_t * p_cc_pair);
253
257typedef struct {
258 uint16_t CC;
259 uint16_t version;
261}
263
267typedef struct {
269 uint16_t CC;
270 uint16_t version;
272}
274
289
306
313
314typedef void(*ZAF_TX_Callback_t)(transmission_result_t * pTxResult);
315
321typedef void(*ZW_TX_Callback_t)(uint8_t txStatus, TX_STATUS_TYPE* extendedTxStatus);
322
327typedef void(*ZW_TX_Multi_Callback_t)(uint8_t txStatus);
328
332typedef void(*ZW_Void_Callback_t)(void);
333
334#ifdef __APPLE__
335#define HANDLER_V2_SECTION "__TEXT,__cc_handlers_v3"
336extern CC_handler_map_v3_t __start__cc_handlers_v3 __asm("section$start$__TEXT$__cc_handlers_v3");
337extern CC_handler_map_v3_t __stop__cc_handlers_v3 __asm("section$end$__TEXT$__cc_handlers_v3");
338#else
339#define HANDLER_SECTION "zw_cc_handlers_v3"
344#define cc_handlers_start __start_zw_cc_handlers_v3
351#define cc_handlers_stop __stop_zw_cc_handlers_v3
352#endif
353
399#define REGISTER_CC_V5(cc, version, handler, basic_set_mapper, basic_get_mapper, lifeline_report_cb, flags, init_cb, reset_cb) \
400 static const CC_handler_map_latest_t thisHandler##cc __attribute__((aligned(4), __used__, __section__(HANDLER_SECTION))) = { 3, cc, version, (cc_handler_t)handler, basic_set_mapper, basic_get_mapper, lifeline_report_cb, flags, init_cb, reset_cb }; \
401 void * dummy##cc
402
435#define REGISTER_CC_V4(cc, version, handler, basic_set_mapper, basic_get_mapper, lifeline_report_cb, flags, init_cb, reset_cb) \
436 static const CC_handler_map_latest_t thisHandler##cc __attribute__((aligned(4), __used__, __section__(HANDLER_SECTION))) = { 2, cc, version, (cc_handler_t)handler, basic_set_mapper, basic_get_mapper, lifeline_report_cb, flags, init_cb, reset_cb }; \
437 void * dummy##cc
438
469#define REGISTER_CC_V3(cc, version, handler, basic_set_mapper, basic_get_mapper, lifeline_report_cb, flags) \
470 static const CC_handler_map_latest_t thisHandler##cc __attribute__((aligned(4), __used__, __section__(HANDLER_SECTION))) = { 2, cc, version, (cc_handler_t)handler, basic_set_mapper, basic_get_mapper, lifeline_report_cb, flags, NULL, NULL }; \
471 void * dummy##cc
472
478#define REGISTER_CC_V2(cc, version, handler) \
479 static const CC_handler_map_latest_t thisHandler##cc __attribute__((aligned(4), __used__, __section__(HANDLER_SECTION))) = { 2, cc, version, (cc_handler_t)handler, NULL, NULL, NULL, 0, NULL, NULL }; \
480 void * dummy##cc
481
487#define REGISTER_CC(cc, version, handler) \
488 static const CC_handler_map_latest_t thisHandler##cc __attribute__((aligned(4), __used__, __section__(HANDLER_SECTION))) = { 1, cc, version, (cc_handler_t)handler, NULL, NULL, NULL, 0, NULL, NULL }; \
489 void * dummy##cc
490
498
506
511
512#ifdef __APPLE__
513#define ZAF_CC_CONFIG_SECTION "__TEXT,__zaf_cc_config"
514#else
515#define ZAF_CC_CONFIG_SECTION "zw_zaf_cc_config"
516#endif
517
525#define ZAF_CC_REGISTER_CONFIG(cc, config, index) \
526 static const zaf_cc_config_entry_latest_t cc_config##index##cc __attribute__((aligned(4), __used__, __section__(ZAF_CC_CONFIG_SECTION))) = { cc, (zaf_cc_config_t *) config }; \
527 void * cc_register_config##index##cc
528
529typedef struct {
530 uint8_t list_size;
531 uint8_t * cc_list;
533
538
539#endif /* ZAF_APPLICATIONUTILITIES_ZAF_TYPES_H_ */
void(* ZW_TX_Multi_Callback_t)(uint8_t txStatus)
Definition ZAF_types.h:327
void(* ZAF_TX_Callback_t)(transmission_result_t *pTxResult)
Definition ZAF_types.h:314
struct _MULTICHAN_SOURCE_NODE_ID_ MULTICHAN_SOURCE_NODE_ID
TRANSMISSION_RESULT_FINISH_STATUS
Definition ZAF_types.h:154
struct _RECEIVE_OPTIONS_TYPE_EX_ RECEIVE_OPTIONS_TYPE_EX
received_frame_status_t(* cc_handler_v1_t)(RECEIVE_OPTIONS_TYPE_EX *, ZW_APPLICATION_TX_BUFFER *, uint8_t)
Defines a type for version 1 of the command class handler.
Definition ZAF_types.h:188
cc_group_t CMD_CLASS_GRP
Definition ZAF_types.h:121
ccc_pair_t cc_group_t
Definition ZAF_types.h:120
received_frame_status_t(* cc_handler_v3_t)(cc_handler_input_t *, cc_handler_output_t *)
Defines a type for version 3 of the command class handler.
Definition ZAF_types.h:221
received_frame_status_t(* cc_handler_v2_t)(RECEIVE_OPTIONS_TYPE_EX *, ZW_APPLICATION_TX_BUFFER *, uint8_t, ZW_APPLICATION_TX_BUFFER *, uint8_t *)
Defines a type for version 2 of the command class handler.
Definition ZAF_types.h:193
void(* basic_set_mapper_t)(ZW_APPLICATION_TX_BUFFER *p_frame)
Definition ZAF_types.h:232
received_frame_status_t
Definition ZAF_types.h:100
void(* ZW_TX_Callback_t)(uint8_t txStatus, TX_STATUS_TYPE *extendedTxStatus)
Definition ZAF_types.h:321
zaf_job_status_t job_status_t
Definition ZAF_types.h:148
void(* ZW_Void_Callback_t)(void)
Definition ZAF_types.h:332
zaf_cc_config_entry_v1_t zaf_cc_config_entry_latest_t
Definition ZAF_types.h:510
zaf_job_status_t
Definition ZAF_types.h:139
agi_profile_t AGI_PROFILE
Definition ZAF_types.h:134
e_cmd_handler_return_code_t
Definition ZAF_types.h:89
const CC_handler_map_latest_t __start_zw_cc_handlers_v3
CC_handler_map_v4_t CC_handler_map_latest_t
Definition ZAF_types.h:312
void(* cc_reset_function_t)(void)
Definition ZAF_types.h:246
void(* cc_handler_t)(void)
Defines a type for the generic command class handler.
Definition ZAF_types.h:183
transmission_result_t TRANSMISSION_RESULT
Definition ZAF_types.h:178
const CC_handler_map_latest_t __stop_zw_cc_handlers_v3
struct _MULTICHAN_DEST_NODE_ID_ MULTICHAN_DEST_NODE_ID
job_status_t JOB_STATUS
Definition ZAF_types.h:149
void(* basic_get_mapper_t)(uint8_t endpoint, uint8_t *p_current_value, uint8_t *p_target_value, uint8_t *p_duration)
Definition ZAF_types.h:243
struct _cc_handler_output_t cc_handler_output_t
Defines the output parameters of a command class handler.
uint8_t(* lifeline_report_get_t)(cc_group_t *p_cc_pair)
Definition ZAF_types.h:252
struct _cc_handler_input_t cc_handler_input_t
Defines the input parameters of a command class handler.
void(* cc_init_function_t)(void)
Definition ZAF_types.h:245
@ TRANSMISSION_RESULT_UNKNOWN
Definition ZAF_types.h:157
@ TRANSMISSION_RESULT_NOT_FINISHED
Definition ZAF_types.h:155
@ TRANSMISSION_RESULT_FINISHED
Definition ZAF_types.h:156
@ RECEIVED_FRAME_STATUS_CC_NOT_FOUND
CC handler was not found in CC handler map.
Definition ZAF_types.h:105
@ RECEIVED_FRAME_STATUS_NO_SUPPORT
Frame not supported.
Definition ZAF_types.h:101
@ RECEIVED_FRAME_STATUS_CANCEL
Don't care about status. CC or App will send the report.
Definition ZAF_types.h:104
@ RECEIVED_FRAME_STATUS_FAIL
Could not handle incoming frame.
Definition ZAF_types.h:103
@ RECEIVED_FRAME_STATUS_WORKING
Frame received successfully and timed change started.
Definition ZAF_types.h:102
@ RECEIVED_FRAME_STATUS_SUCCESS
Frame received successfully.
Definition ZAF_types.h:106
@ JOB_STATUS_SUCCESS
Definition ZAF_types.h:140
@ JOB_STATUS_NO_DESTINATIONS
Definition ZAF_types.h:142
@ JOB_STATUS_BUSY
Definition ZAF_types.h:141
@ E_CMD_HANDLER_RETURN_CODE_HANDLED
Accepted and executed by the command handler. Command class returns SUCCESS.
Definition ZAF_types.h:91
@ E_CMD_HANDLER_RETURN_CODE_NOT_SUPPORTED
Command handler does not support this command. Command class returns NO_SUPPORT.
Definition ZAF_types.h:93
@ E_CMD_HANDLER_RETURN_CODE_NO_CHANGE
Accepted but device was already in final state, so no change was made. Command class returns SUCCESS.
Definition ZAF_types.h:94
@ E_CMD_HANDLER_RETURN_CODE_WORKING
Accepted but is not fully executed. Command class returns WORKING.
Definition ZAF_types.h:92
@ E_CMD_HANDLER_RETURN_CODE_FAIL
Not accepted or accepted but failed to execute. Command class returns FAIL.
Definition ZAF_types.h:90
struct _TX_STATUS_TYPE_ TX_STATUS_TYPE
enum SECURITY_KEY security_key_t
uint16_t node_id_t
Node ID type.
Definition zpal_radio.h:229
Definition ZAF_types.h:257
cc_handler_t pHandler
Definition ZAF_types.h:260
uint16_t version
Definition ZAF_types.h:259
uint16_t CC
Definition ZAF_types.h:258
Definition ZAF_types.h:267
uint16_t version
Definition ZAF_types.h:270
uint16_t CC
Definition ZAF_types.h:269
cc_handler_t handler
Definition ZAF_types.h:271
uint32_t handler_api_version
Definition ZAF_types.h:268
Definition ZAF_types.h:278
uint16_t CC
Definition ZAF_types.h:280
cc_handler_t handler
Definition ZAF_types.h:282
basic_set_mapper_t basic_set_mapper
Definition ZAF_types.h:283
uint32_t handler_api_version
Definition ZAF_types.h:279
basic_get_mapper_t basic_get_mapper
Definition ZAF_types.h:284
lifeline_report_get_t lifeline_report_get
Definition ZAF_types.h:285
uint32_t flags
Definition ZAF_types.h:286
uint16_t version
Definition ZAF_types.h:281
Definition ZAF_types.h:293
uint16_t CC
Definition ZAF_types.h:295
lifeline_report_get_t lifeline_report_get
Definition ZAF_types.h:300
uint32_t flags
Definition ZAF_types.h:301
basic_set_mapper_t basic_set_mapper
Definition ZAF_types.h:298
cc_reset_function_t reset
Definition ZAF_types.h:303
uint8_t handler_api_version
Definition ZAF_types.h:294
basic_get_mapper_t basic_get_mapper
Definition ZAF_types.h:299
uint8_t version
Definition ZAF_types.h:296
cc_handler_t handler
Definition ZAF_types.h:297
cc_init_function_t init
Definition ZAF_types.h:302
Definition ZAF_types.h:54
uint8_t BitAddress
Definition ZAF_types.h:61
uint8_t nodeId
The ID of the destination node.
Definition ZAF_types.h:55
uint8_t endpoint
Definition ZAF_types.h:58
Definition ZAF_types.h:80
ZW_APPLICATION_TX_BUFFER appTxBuf
Definition ZAF_types.h:83
uint8_t multichanCmdEncap[4]
Definition ZAF_types.h:81
ZW_SUPERVISION_GET_FRAME supervisionGet
Definition ZAF_types.h:82
Definition ZAF_types.h:38
node_id_t nodeId
The ID of the destination node.
Definition ZAF_types.h:39
uint8_t BitAddress
Definition ZAF_types.h:45
uint8_t endpoint
Definition ZAF_types.h:42
Definition ZAF_types.h:29
node_id_t nodeId
The ID of the source node.
Definition ZAF_types.h:30
uint8_t res
Definition ZAF_types.h:35
uint8_t endpoint
Definition ZAF_types.h:33
Definition ZAF_types.h:67
uint8_t bSupervisionActive
true if supervision is active
Definition ZAF_types.h:72
MULTICHAN_SOURCE_NODE_ID sourceNode
Definition ZAF_types.h:70
uint8_t rxStatus
Frame header info.
Definition ZAF_types.h:68
MULTICHAN_DEST_NODE_ID destNode
Definition ZAF_types.h:71
uint8_t statusUpdate
Is statusUpdate enabled for current session.
Definition ZAF_types.h:74
security_key_t securityKey
Definition ZAF_types.h:69
uint8_t sessionId
Current sessionId.
Definition ZAF_types.h:73
Defines the input parameters of a command class handler.
Definition ZAF_types.h:203
ZW_APPLICATION_TX_BUFFER * frame
Definition ZAF_types.h:205
uint8_t length
Definition ZAF_types.h:206
RECEIVE_OPTIONS_TYPE_EX * rx_options
Definition ZAF_types.h:204
Defines the output parameters of a command class handler.
Definition ZAF_types.h:212
ZW_APPLICATION_TX_BUFFER * frame
Definition ZAF_types.h:213
uint8_t duration
Definition ZAF_types.h:215
uint8_t length
Definition ZAF_types.h:214
Definition ZAF_types.h:126
uint8_t profile_MS
Definition ZAF_types.h:127
uint8_t profile_LS
Definition ZAF_types.h:128
Definition ZAF_types.h:112
uint8_t cmdClass
Definition ZAF_types.h:113
uint8_t cmd
Definition ZAF_types.h:114
Definition ZAF_types.h:166
node_id_t nodeId
Definition ZAF_types.h:167
uint8_t status
Definition ZAF_types.h:168
TRANSMISSION_RESULT_FINISH_STATUS isFinished
Definition ZAF_types.h:172
Definition ZAF_types.h:499
uint16_t command_class
Definition ZAF_types.h:500
zaf_cc_config_t * p_cc_configuration
Definition ZAF_types.h:504
Definition ZAF_types.h:494
uint8_t endpoint
Definition ZAF_types.h:496
RECEIVE_OPTIONS_TYPE_EX rxOpt
Definition ZAF_types.h:495
Definition ZAF_types.h:529
uint8_t list_size
Definition ZAF_types.h:530
uint8_t * cc_list
Definition ZAF_types.h:531