Z-Wave Protocol Controller Reference
zwapi_protocol_transport.h File Reference

Z-Wave API for transport application layer interface. More...

#include <stdint.h>
#include <stdbool.h>
#include "sl_status.h"
#include "zwave_node_id_definitions.h"
Include dependency graph for zwapi_protocol_transport.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  rssi_val
 
struct  _S_ROUTE_LINK_
 
struct  _protocol_metadata_
 
struct  zwapi_tx_report
 Detailed report and data about Z-Wave transmissions. More...
 

Macros

#define NODEPARM_MAX   35
 Max. number of parameters. More...
 
#define TRANSMIT_COMPLETE_OK   0x00
 Transmission was successful. More...
 
#define TRANSMIT_COMPLETE_NO_ACK    0x01
 The destination has not acknowledge the frame. More...
 
#define TRANSMIT_COMPLETE_FAIL   0x02
 Transmit error. More...
 
#define TRANSMIT_ROUTING_NOT_IDLE   0x03
 
#define TRANSMIT_COMPLETE_NOROUTE   0x04
 Assign route transmit complete but no routes was found. More...
 
#define TRANSMIT_COMPLETE_VERIFIED   0x05
 Verified delivery. More...
 
#define ZW_MAX_CACHED_RETURN_ROUTE_DESTINATIONS   5
 
#define ZW_RF_TEST_SIGNAL_CARRIER   0x00
 
#define ZW_RF_TEST_SIGNAL_CARRIER_MODULATED   0x01
 
#define MAX_REPEATERS   4
 Max hops in route. More...
 
#define PROTOCOL_METADATA_LENGTH
 rf_speed | tx_power | tx_options | callback_id More...
 
Transmit frame option flags

request acknowledge from destination node

#define TRANSMIT_OPTION_ACK   0x01
 transmit at low output power level (1/3 of normal RF range) More...
 
#define TRANSMIT_OPTION_LOW_POWER   0x02
 The multicast frame should be send as a broadcast. More...
 
#define TRANSMIT_OPTION_MULTICAST_AS_BROADCAST   0x02
 
#define TRANSMIT_OPTION_AUTO_ROUTE   0x04
 request retransmission via repeater nodes More...
 
#define TRANSMIT_OPTION_NO_ROUTE   0x10
 do not use response route - Even if available More...
 
#define TRANSMIT_OPTION_EXPLORE   0x20
 Use explore frame if needed. More...
 
#define TRANSMIT_OPTION_MULTICAST   0x40
 The the frame as a multicast frame. More...
 
Transmit frame option flag which are valid when sending explore frames
#define TRANSMIT_EXPLORE_OPTION_ACK   TRANSMIT_OPTION_ACK
 
#define TRANSMIT_EXPLORE_OPTION_LOW_POWER   TRANSMIT_OPTION_LOW_POWER
 
Allow Transport Service segmentation of long messages
#define TRANSMIT_OPTION_2_TRANSPORT_SERVICE   0x01
 
#define TRANSMIT_OPTION_2_FOLLOWUP   0x08
 
Received frame status flags

A response route is locked by the application

#define RECEIVE_STATUS_ROUTED_BUSY   0x01
 
#define RECEIVE_STATUS_LOW_POWER   0x02
 
#define RECEIVE_STATUS_TYPE_MASK   0x0C
 Mask for masking out the received frametype bits. More...
 
#define RECEIVE_STATUS_TYPE_SINGLE   0x00
 Received frame is singlecast frame (rxOptions == xxxx00xx) More...
 
#define RECEIVE_STATUS_TYPE_BROAD   0x04
 Received frame is broadcast frame (rxOptions == xxxx01xx) More...
 
#define RECEIVE_STATUS_TYPE_MULTI   0x08
 Received frame is multicast frame (rxOptions == xxxx10xx) More...
 
#define RECEIVE_STATUS_TYPE_EXPLORE   0x10
 
#define RECEIVE_STATUS_FOREIGN_FRAME   0x40
 
#define RECEIVE_STATUS_FOREIGN_HOMEID   0x80
 
ZW_REDISCOVERY_NEEDED callback values

Note that they are different from zwapi_request_network_update() callbacks

#define ZW_ROUTE_LOST_FAILED   0x04
 Node Asked wont help us. More...
 
#define ZW_ROUTE_LOST_ACCEPT   0x05
 Accepted to help. More...
 
zwapi_tx_report_t Last Used Route array size definitions
#define LAST_USED_ROUTE_CONF_SIZE   1
 
#define LAST_USED_ROUTE_SIZE   (MAX_REPEATERS + LAST_USED_ROUTE_CONF_SIZE)
 
zwapi_tx_report_t Last Used Route array index definitions
#define LAST_USED_ROUTE_REPEATER_0_INDEX   0
 
#define LAST_USED_ROUTE_REPEATER_1_INDEX   1
 
#define LAST_USED_ROUTE_REPEATER_2_INDEX   2
 
#define LAST_USED_ROUTE_REPEATER_3_INDEX   3
 
RSSI feedback constants

This is a signed 8-bit value. Note that values from RSSI_RESERVED_START to 124 are reserved. All values below RSSI_RESERVED_START are received power in dBms. Other values are defined below.

RSSI measurement not available

#define RSSI_NOT_AVAILABLE   127
 
#define RSSI_MAX_POWER_SATURATED   126
 Receiver saturated. RSSI too high to measure precisely. More...
 
#define RSSI_BELOW_SENSITIVITY   125
 No signal detected. The RSSI is too low to measure precisely. More...
 
#define RSSI_RESERVED_START   11
 

Typedefs

typedef struct _S_ROUTE_LINK_ S_ROUTE_LINK
 
typedef struct _protocol_metadata_ protocol_metadata_t
 
typedef enum _E_ROUTING_SCHEME_ e_routing_scheme_t
 Transport routing scheme state define definitions. More...
 
typedef enum last_route_speed last_route_speed_t
 List of possible link speeds / protocols. More...
 
typedef struct zwapi_tx_report zwapi_tx_report_t
 Detailed report and data about Z-Wave transmissions. More...
 

Enumerations

enum  _E_ROUTING_SCHEME_ {
  ROUTINGSCHEME_IDLE = 0 , ROUTINGSCHEME_DIRECT = 1 , ROUTINGSCHEME_CACHED_ROUTE_SR = 2 , ROUTINGSCHEME_CACHED_ROUTE = 3 ,
  ROUTINGSCHEME_CACHED_ROUTE_NLWR = 4 , ROUTINGSCHEME_ROUTE = 5 , ROUTINGSCHEME_RESORT_DIRECT = 6 , ROUTINGSCHEME_RESORT_EXPLORE = 7
}
 Transport routing scheme state define definitions. More...
 
enum  last_route_speed {
  UNKNOWN_SPEED = 0 , ZWAVE_9_6_KBITS_S = 1 , ZWAVE_40_KBITS_S = 2 , ZWAVE_100_KBITS_S = 3 ,
  ZWAVE_LONG_RANGE_100_KBITS_S = 4
}
 List of possible link speeds / protocols. More...
 

Functions

sl_status_t zwapi_lock_route (bool lock)
 Lock and unlock a response route for a specific node. More...
 
sl_status_t zwapi_send_data_bridge (zwave_node_id_t source_node_id, zwave_node_id_t destination_node_id, const uint8_t *data, uint8_t data_length, uint8_t tx_options, void(*callback_function)(uint8_t, zwapi_tx_report_t *))
 Transmit data buffer to a single ZW-node or all ZW-nodes (broadcast) in bridge mode. More...
 
sl_status_t zwapi_send_data (zwave_node_id_t destination_node_id, const uint8_t *data, uint8_t data_length, uint8_t tx_options, void(*callback_function)(uint8_t, zwapi_tx_report_t *))
 Send data to a Z-Wave node or to the broadcast destination. More...
 
sl_status_t zwapi_send_protocol_data (zwave_node_id_t destination_node_id, const uint8_t *data, uint8_t data_length, void *metadata, void(*callback_function)(uint8_t, zwapi_tx_report_t *))
 Send protocol data to a Z-Wave node. More...
 
sl_status_t zwapi_abort_send_data (void)
 Abort the ongoing transmit started with zwapi_send_data() or zwapi_send_data_bridge() More...
 
sl_status_t zwapi_send_data_multi (zwave_nodemask_t destination_node_mask, const uint8_t *data, uint8_t data_length, uint8_t tx_options, void(*callback_function)(uint8_t tx_status))
 Send data to a list of Z-Wave Nodes (multicast frame). More...
 
sl_status_t zwapi_send_data_multi_bridge (zwave_node_id_t source_node_id, zwave_nodemask_t destination_node_mask, const uint8_t *data, uint8_t data_length, uint8_t tx_options, void(*callback_function)(uint8_t tx_status))
 Send data to a list of Z-Wave Nodes (multicast frame) in bridge mode. More...
 
sl_status_t zwapi_send_nop (zwave_node_id_t destination, uint8_t tx_options, void(*callback_function)(uint8_t, zwapi_tx_report_t *))
 Sends a NOP to a NodeID destination. More...
 

Detailed Description

Z-Wave API for transport application layer interface.