Z-Wave Protocol Controller Reference
zwapi_internal.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
20#ifndef ZWAPI_INTERNAL_H
21#define ZWAPI_INTERNAL_H
22
23#include "zwapi_init.h"
24#include "zwapi_protocol_transport.h" //zwapi_tx_report_t definition
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30// Forward declarations
31struct LEARN_INFO;
32
33extern void (*zwapi_send_data_callback)(uint8_t, zwapi_tx_report_t *);
34extern void (*zwapi_send_nop_callback)(uint8_t, zwapi_tx_report_t *);
35extern void (*zwapi_send_data_multi_callback)(uint8_t);
36extern void (*zwapi_send_test_frame_callback)(uint8_t);
37extern void (*zwapi_send_data_bridge_callback)(uint8_t, zwapi_tx_report_t *);
38extern void (*zwapi_send_data_multi_bridge_callback)(uint8_t);
39extern void (*zwapi_send_node_information_callback)(uint8_t txStatus);
40extern void (*zwapi_memory_put_buffer_callback)(void);
41extern void (*zwapi_set_default_callback)(void);
44extern void (*zwapi_add_node_to_network_callback)(struct LEARN_INFO *);
46extern void (*zwapi_send_controller_replication_callback)(uint8_t txStatus);
47extern void (*zwapi_assign_return_route_callback)(uint8_t bStatus);
50extern void (*zwapi_delete_return_route_callback)(uint8_t bStatus);
51extern void (*zwapi_set_learn_mode_callback)(struct LEARN_INFO *);
53 uint8_t bStatus, zwave_node_id_t orgID, zwave_node_id_t newID);
55extern void (*zwapi_set_suc_node_id_callback)(uint8_t bStatus);
56extern void (*zwapi_request_network_update_callback)(uint8_t txStatus);
57extern void (*zwapi_remove_failed_node_callback)(uint8_t txStatus);
58extern void (*zwapi_replace_failed_node_callback)(uint8_t txStatus);
59
67#define REQUEST_BUFFER_SIZE 180
68#define SERIAL_BUFFER_SIZE 0xFF
69#define FRAME_LENGTH_MIN 3
70#define FRAME_LENGTH_MAX SERIAL_BUFFER_SIZE
71
72// Some commands have a Return Value given by the Z-Wave Module
73#define ZW_COMMAND_RETURN_VALUE_FALSE \
74 0
75#define ZW_COMMAND_RETURN_VALUE_TRUE 1
76
85void zwave_api_protocol_rx_dispatch(uint8_t *pData, uint16_t len);
86
93
107sl_status_t zwapi_send_command(uint8_t command,
108 const uint8_t *payload_buffer,
109 uint8_t payload_buffer_length);
110
131 const uint8_t *payload_buffer,
132 uint8_t payload_buffer_length,
133 uint8_t *response_buffer,
134 uint8_t *response_length);
135
149 const uint8_t *payload_buffer,
150 uint8_t payload_buffer_length);
151
152#ifdef __cplusplus
153}
154#endif
155
156#endif // ZWAPI_INTERNAL_H
uint32_t sl_status_t
Definition: sl_status.h:139
uint16_t zwave_node_id_t
Z-Wave NodeID type.
Definition: zwave_node_id_definitions.h:84
Learn mode state information passed by the call back function.
Definition: zwapi_protocol_controller.h:328
uint8_t bStatus
Status of learn mode.
Definition: zwapi_protocol_controller.h:329
Detailed report and data about Z-Wave transmissions.
Definition: zwapi_protocol_transport.h:225
Z-Wave API initialization functions.
void(* zwapi_request_network_update_callback)(uint8_t txStatus)
Definition: zwapi_protocol_rx_dispatch.c:66
void(* zwapi_set_suc_node_id_callback)(uint8_t bStatus)
Definition: zwapi_protocol_rx_dispatch.c:65
void(* zwapi_send_test_frame_callback)(uint8_t)
Definition: zwapi_protocol_rx_dispatch.c:45
void(* zwapi_remove_node_from_network_callback)(struct LEARN_INFO *)
Definition: zwapi_protocol_rx_dispatch.c:52
void(* zwapi_send_data_multi_callback)(uint8_t)
Definition: zwapi_protocol_rx_dispatch.c:44
sl_status_t zwapi_send_command_no_ack(uint8_t command, const uint8_t *payload_buffer, uint8_t payload_buffer_length)
Send a command to the Z-Wave module without waiting for any ACK.
Definition: zwapi_init.c:569
void(* zwapi_set_virtual_node_to_learn_mode_callback)(uint8_t bStatus, zwave_node_id_t orgID, zwave_node_id_t newID)
Definition: zwapi_protocol_rx_dispatch.c:61
sl_status_t zwapi_send_command_with_response(uint8_t command, const uint8_t *payload_buffer, uint8_t payload_buffer_length, uint8_t *response_buffer, uint8_t *response_length)
Send a command to the Z-Wave module and waits for an ACK.
Definition: zwapi_init.c:553
sl_status_t zwapi_send_command(uint8_t command, const uint8_t *payload_buffer, uint8_t payload_buffer_length)
Verifies that the command is supported by the Z-Wave module.
Definition: zwapi_init.c:541
void(* zwapi_set_learn_mode_callback)(struct LEARN_INFO *)
Definition: zwapi_protocol_rx_dispatch.c:60
void(* zwapi_delete_suc_return_route_callback)(uint8_t bStatus)
Definition: zwapi_protocol_rx_dispatch.c:58
void(* zwapi_memory_put_buffer_callback)(void)
Definition: zwapi_protocol_rx_dispatch.c:49
void(* zwapi_send_nop_callback)(uint8_t, zwapi_tx_report_t *)
Definition: zwapi_protocol_rx_dispatch.c:43
void(* zwapi_replace_failed_node_callback)(uint8_t txStatus)
Definition: zwapi_protocol_rx_dispatch.c:68
void(* zwapi_send_node_information_callback)(uint8_t txStatus)
Definition: zwapi_protocol_rx_dispatch.c:48
void(* zwapi_send_data_bridge_callback)(uint8_t, zwapi_tx_report_t *)
Definition: zwapi_protocol_rx_dispatch.c:46
void(* zwapi_create_new_primarly_ctrl_callback)(struct LEARN_INFO *)
Definition: zwapi_protocol_rx_dispatch.c:51
void(* zwapi_set_default_callback)(void)
Definition: zwapi_protocol_rx_dispatch.c:50
void(* zwapi_send_data_callback)(uint8_t, zwapi_tx_report_t *)
Definition: zwapi_protocol_rx_dispatch.c:42
void(* zwapi_transfer_primary_ctrl_role_callback)(struct LEARN_INFO *)
Definition: zwapi_protocol_rx_dispatch.c:54
void(* zwapi_add_node_to_network_callback)(struct LEARN_INFO *)
Definition: zwapi_protocol_rx_dispatch.c:53
void(* zwapi_remove_failed_node_callback)(uint8_t txStatus)
Definition: zwapi_protocol_rx_dispatch.c:67
void zwave_api_protocol_rx_dispatch(uint8_t *pData, uint16_t len)
Execute a callback based on a received frame from the Z-Wave module.
Definition: zwapi_protocol_rx_dispatch.c:175
void(* zwapi_send_controller_replication_callback)(uint8_t txStatus)
Definition: zwapi_protocol_rx_dispatch.c:55
void(* zwapi_assign_return_route_callback)(uint8_t bStatus)
Definition: zwapi_protocol_rx_dispatch.c:56
void(* zwapi_delete_return_route_callback)(uint8_t bStatus)
Definition: zwapi_protocol_rx_dispatch.c:59
void(* zwapi_send_data_multi_bridge_callback)(uint8_t)
Definition: zwapi_protocol_rx_dispatch.c:47
void(* zwapi_request_neighbor_update_callback)(uint8_t bStatus)
Definition: zwapi_protocol_rx_dispatch.c:64
void zwave_api_protocol_init_callbacks(void)
Initialize functions pointers for Z-Wave module callbacks.
Definition: zwapi_protocol_rx_dispatch.c:70
void(* zwapi_assign_suc_return_route_callback)(uint8_t bStatus)
Definition: zwapi_protocol_rx_dispatch.c:57
Z-Wave API for transport application layer interface.