Z-Wave Protocol Controller Reference
zwave_command_handler.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
14#ifndef ZWAVE_COMMAND_HANDLER_H
15#define ZWAVE_COMMAND_HANDLER_H
16
32// Includes from other components
34#include "zwave_controller.h"
35#include "zwave_rx.h"
36#include "sl_status.h"
37
38// Interface includes
40
41// Generic includes
42#include <stdbool.h>
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
71 const zwave_controller_connection_info_t *connection,
72 const uint8_t *frame_data,
73 uint16_t frame_length);
74
82typedef struct {
86
90
95
99
103
106 const char *comments;
107
111
119
125
131
154 zwave_command_handler_t new_command_class_handler);
155
166
167// It is moved here to insert supervision decapsulated commands back to
168// the command handler. This may be updated with TX/RX validation scheme
169// component work.
181 const zwave_controller_connection_info_t *connection_info,
182 const uint8_t *frame_data,
183 uint16_t frame_length);
184
192
199
200#ifdef __cplusplus
201}
202#endif
203
206#endif /* ZWAVE_COMMAND_HANDLER_H */
uint32_t sl_status_t
Definition: sl_status.h:139
uint8_t zwave_cc_version_t
‍Version of a Z-Wave Command Class
Definition: zwave_command_class_version_types.h:26
void zwave_command_handler_print_info(int fd)
Print Command Class Version info.
int zwave_command_handler_teardown(void)
Teardown of the Z-Wave command handler.
sl_status_t(* zwave_command_class_handler_t)(const zwave_controller_connection_info_t *connection, const uint8_t *frame_data, uint16_t frame_length)
This is the function which will be executed when the frame of a given Command Class is received.
Definition: zwave_command_handler.h:70
bool zwave_command_handler_controls(zwave_command_class_t command_class)
Check if we control a given command class.
sl_status_t zwave_command_handler_init(void)
Initialize the command handlers.
zwave_cc_version_t zwave_command_handler_get_version(zwave_command_class_t command_class)
Get the version of Command Class that the handler handles.
sl_status_t zwave_command_handler_dispatch(const zwave_controller_connection_info_t *connection_info, const uint8_t *frame_data, uint16_t frame_length)
Dispatches a frame to its respective Command Class handler.
sl_status_t zwave_command_handler_register_handler(zwave_command_handler_t new_command_class_handler)
Register a command class handler.
zwave_controller_encapsulation_scheme_t
Definition: zwave_controller_connection_info.h:33
uint16_t zwave_command_class_t
Definition: zwave_generic_types.h:29
SL Status Codes.
Z-Wave Command Class handler object.
Definition: zwave_command_handler.h:82
zwave_command_class_handler_t support_handler
Definition: zwave_command_handler.h:85
const char * command_class_name
Definition: zwave_command_handler.h:102
zwave_command_class_t command_class
Definition: zwave_command_handler.h:98
const char * comments
Definition: zwave_command_handler.h:106
zwave_command_class_handler_t control_handler
Definition: zwave_command_handler.h:89
bool manual_security_validation
Definition: zwave_command_handler.h:117
zwave_controller_encapsulation_scheme_t minimal_scheme
Definition: zwave_command_handler.h:94
zwave_cc_version_t version
Definition: zwave_command_handler.h:110
Structure holding information about the source and destination when transmitting and receiving Z-Wave...
Definition: zwave_controller_connection_info.h:87