Z-Wave Protocol Controller Reference
transport_service.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
22#ifndef TRANSPORT_SERVICE_H
23#define TRANSPORT_SERVICE_H
24
25#include "stdint.h"
26#include "stdbool.h"
28#ifdef __cplusplus
29extern "C" {
30#endif
31
33#define COMMAND_CLASS_TRANSPORT_SERVICE_V2 0x55
41typedef void (*on_transport_service_send_data_complete_t)(uint8_t status,
42 void *user);
43
51typedef void (*on_lower_layer_send_data_complete_t)(uint8_t status, void *user);
52
64typedef uint8_t (*send_data_t)(
65 ts_node_id_t source,
66 ts_node_id_t dest,
67 const uint8_t *payload,
68 uint16_t payload_len,
69 uint8_t no_of_expected_responses,
70 const on_lower_layer_send_data_complete_t on_lower_layer_send_data_complete);
71
83 ts_node_id_t dest,
84 const uint8_t *frame,
85 uint16_t frame_len);
86
102 const send_data_t send_data);
103
105
106typedef enum {
112
132 ts_node_id_t source,
133 ts_node_id_t dest,
134 const uint8_t *payload,
135 uint16_t payload_len,
136 uint16_t max_frame_len,
137 const on_transport_service_send_data_complete_t on_send_complete);
138
159 ts_node_id_t dest,
160 receive_type rx_type,
161 const uint8_t *frame_data,
162 uint8_t frame_length);
163
164#ifdef __cplusplus
165}
166#endif
167
168#endif
uint8_t(* send_data_t)(ts_node_id_t source, ts_node_id_t dest, const uint8_t *payload, uint16_t payload_len, uint8_t no_of_expected_responses, const on_lower_layer_send_data_complete_t on_lower_layer_send_data_complete)
Lower layer Send Data function which Transport service should use for transmitting broken down smalle...
Definition: transport_service.h:64
void(* upper_layer_command_handler_t)(ts_node_id_t source, ts_node_id_t dest, const uint8_t *frame, uint16_t frame_len)
This function is called when transport service is done receiving/stiching the whole data and the data...
Definition: transport_service.h:82
void(* on_lower_layer_send_data_complete_t)(uint8_t status, void *user)
This callback is sent to lower layers and should be called when the transmission of what Transport se...
Definition: transport_service.h:51
receive_type
Definition: transport_service.h:104
zwave_node_id_t ts_node_id_t
Definition: transport_service.h:32
transport_service_send_data_return_code_t transport_service_send_data(ts_node_id_t source, ts_node_id_t dest, const uint8_t *payload, uint16_t payload_len, uint16_t max_frame_len, const on_transport_service_send_data_complete_t on_send_complete)
Sending a long frame with Transport service.
Definition: transport_service.c:1761
bool transport_service_on_frame_received(ts_node_id_t source, ts_node_id_t dest, receive_type rx_type, const uint8_t *frame_data, uint8_t frame_length)
Transport service RX function.
Definition: transport_service.c:1674
void(* on_transport_service_send_data_complete_t)(uint8_t status, void *user)
Transport service calls this callback to notify upper layers of completion of transmit of whole paylo...
Definition: transport_service.h:41
void transport_service_init(ts_node_id_t my_node_id, const upper_layer_command_handler_t upper_layer_command_handler, const send_data_t send_data)
Initialize the Transport Service.
Definition: transport_service.c:63
transport_service_send_data_return_code_t
Definition: transport_service.h:106
@ SINGLECAST
Definition: transport_service.h:104
@ MULTICAST
Definition: transport_service.h:104
@ BROADCAST
Definition: transport_service.h:104
@ TRANSPORT_SERVICE_WILL_OVERFLOW
Definition: transport_service.h:110
@ TRANSPORT_SERVICE_SEND_SUCCESS
Definition: transport_service.h:107
@ TRANSPORT_SERVICE_BUSY
Definition: transport_service.h:109
@ TRANSPORT_SERVICE_SEND_FAILURE
Definition: transport_service.h:108
uint16_t zwave_node_id_t
Z-Wave NodeID type.
Definition: zwave_node_id_definitions.h:84
static upper_layer_command_handler_t upper_layer_command_handler
Definition: transport_service.c:43
static uint16_t my_node_id
Definition: transport_service.c:45
static uint8_t send_data(ts_node_id_t source, ts_node_id_t dest, const uint8_t *payload, const uint16_t payload_len, uint8_t no_of_expected_responses, const on_lower_layer_send_data_complete_t cb)
Definition: zwave_transport_service_wrapper.c:77