Z-Wave Protocol Controller Reference
zwave_controller_transport.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
42#ifndef ZWAVE_CONTROLLER_TRANSPORT_H
43#define ZWAVE_CONTROLLER_TRANSPORT_H
44
45#include "zwave_controller.h"
46#include "zwave_tx.h"
48
49// The maximum number of transports that can be registered.
50#define NUMBER_OF_TRANSPORTS 7
51
52#ifdef __cplusplus
53extern "C" {
54#endif
55
78 uint32_t priority;
90
110 const zwave_controller_connection_info_t *connection,
111 uint16_t data_length,
112 const uint8_t *data,
113 const zwave_tx_options_t *tx_options,
114 const on_zwave_tx_send_data_complete_t on_send_complete,
115 void *user,
116 zwave_tx_session_id_t parent_session);
117
128
145 const zwave_controller_connection_info_t *connection_info,
146 const zwave_rx_receive_options_t *rx_options,
147 const uint8_t *frame_data,
148 uint16_t frame_length);
149 /* data */
151
158
168 const zwave_controller_transport_t *transport);
169
181 zwave_command_class_t command_class);
182
183#ifdef __cplusplus
184}
185#endif
186
187#endif //ZWAVE_CONTROLLER_TRANSPORT_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
sl_status_t zwave_controller_transport_init()
Initialize the Z-Wave Controller transport component.
Definition: zwave_controller_transport.c:32
sl_status_t zwave_controller_transport_register(const zwave_controller_transport_t *transport)
Must be called to register a transport.
Definition: zwave_controller_transport.c:38
zwave_cc_version_t zwave_controller_transport_is_encapsulation_cc(zwave_command_class_t command_class)
check if a command class is registered as an encapsulation cc in Z-Wave controller transport framewor...
Definition: zwave_controller_transport.c:89
struct zwave_controller_transport zwave_controller_transport_t
Hold information about a transport plugin.
uint16_t zwave_command_class_t
Definition: zwave_generic_types.h:29
void * zwave_tx_session_id_t
Handle that can be used for aborting ongoing transmissions or identifying TX Queue elements.
Definition: zwave_tx_definitions.h:77
void(* on_zwave_tx_send_data_complete_t)(uint8_t status, const zwapi_tx_report_t *tx_info, void *user)
Function signature for callbacks invoked when send data has completed.
Definition: zwave_tx.h:168
Structure holding information about the source and destination when transmitting and receiving Z-Wave...
Definition: zwave_controller_connection_info.h:87
Hold information about a transport plugin.
Definition: zwave_controller_transport.h:60
zwave_command_class_t command_class
Which Z-Wave command class this transport is serving.
Definition: zwave_controller_transport.h:83
sl_status_t(* on_frame_received)(const zwave_controller_connection_info_t *connection_info, const zwave_rx_receive_options_t *rx_options, const uint8_t *frame_data, uint16_t frame_length)
Command handler to of the transport.
Definition: zwave_controller_transport.h:144
zwave_cc_version_t version
The command class version of the command class that this transport is implementing.
Definition: zwave_controller_transport.h:89
sl_status_t(* send_data)(const zwave_controller_connection_info_t *connection, uint16_t data_length, const uint8_t *data, const zwave_tx_options_t *tx_options, const on_zwave_tx_send_data_complete_t on_send_complete, void *user, zwave_tx_session_id_t parent_session)
Send function to use when encapsulating with this transport.
Definition: zwave_controller_transport.h:109
uint32_t priority
Priority of this plugin, transports with lowest number priority is executed last when encoding....
Definition: zwave_controller_transport.h:78
sl_status_t(* abort_send_data)(zwave_tx_session_id_t session_id)
abort function that instructs the transport to abort one or more ongoing transmission(s)
Definition: zwave_controller_transport.h:127
Describing receive parameters of a frame.
Definition: zwave_rx_definitions.h:35
Definition: zwave_tx_definitions.h:131