Z-Wave Protocol Controller Reference

Functions in the Z-Wave basis API. More...

Collaboration diagram for Basis API:

Classes

struct  tx_power_level_t
 

Macros

#define ZW_INT_MASK_EXT1   0x02
 
#define ZW_AV_VERSION_MAJOR   1
 
#define ZW_AV_VERSION_MINOR   0
 

Enumerations

enum  serial_api_setup_cmd_t {
  SERIAL_API_SETUP_CMD_UNSUPPORTED = 0x00 , SERIAL_API_SETUP_CMD_SUPPORTED = 0x01 , SERIAL_API_SETUP_CMD_TX_STATUS_REPORT = 0x02 , SERIAL_API_SETUP_CMD_MAX_LR_TX_PWR_SET = 0x03 ,
  SERIAL_API_SETUP_CMD_TX_POWERLEVEL_SET = 0x04 , SERIAL_API_SETUP_CMD_MAX_LR_TX_PWR_GET = 0x05 , SERIAL_API_SETUP_CMD_TX_POWERLEVEL_GET = 0x08 , SERIAL_API_SETUP_CMD_MAXIMUM_PAYLOAD_SIZE_GET = 0x10 ,
  SERIAL_API_SETUP_CMD_LR_MAXIMUM_PAYLOAD_SIZE_GET = 0x11 , SERIAL_API_SETUP_CMD_RF_REGION_GET = 0x20 , SERIAL_API_SETUP_CMD_RF_REGION_SET = 0x40 , SERIAL_API_SETUP_CMD_NODEID_BASETYPE_SET = 0x80
}
 Bitflag definitions for FUNC_ID_SERIAL_API_SETUP command. More...
 
enum  rf_power_level_t {
  NORMAL_POWER = 0 , MINUS_1_DBM , MINUS_2_DBM , MINUS_3_DBM ,
  MINUS_4_DBM , MINUS_5_DBM , MINUS_6_DBM , MINUS_7_DBM ,
  MINUS_8_DBM , MINUS_9_DBM , MINIMUM_POWER = MINUS_9_DBM
}
 

Functions

sl_status_t zwapi_set_rf_receive_mode (uint8_t mode)
 Initialize the Z-Wave RF chip. More...
 
sl_status_t zwapi_send_node_information (zwave_node_id_t destNode, uint8_t txOptions, void(*completedFunc)(uint8_t))
 Create and transmit a "Node Information" frame. More...
 
uint8_t zwapi_get_zw_library_version (uint8_t *dst)
 Get the Z-Wave library basis version. More...
 
uint8_t zwapi_get_zw_library_type (void)
 Get the Z-Wave library type. More...
 
rf_power_level_t zwapi_set_rf_power_level (rf_power_level_t powerLevel)
 Set the power level to used in RF transmissions. More...
 
rf_power_level_t zwapi_get_rf_power_level (void)
 Get the current power level used in RF transmitting. More...
 
sl_status_t zwapi_set_tx_status_reporting (bool enable)
 Configure whether zwapi_send_data callbacks should contain tx_status report information. More...
 
sl_status_t zwapi_set_tx_power_level (tx_power_level_t zw_txpowerlevel)
 Set the current TX power level. More...
 
tx_power_level_t zwapi_get_tx_power_level (void)
 Get the current TX power level in effect. More...
 
sl_status_t zwapi_set_max_lr_tx_power_level (int16_t level)
 Set the current MAX Long Range TX power level. More...
 
int16_t zwapi_get_max_lr_tx_power_level (void)
 Get the current MAX Long Range TX power level in effect. More...
 
sl_status_t zwapi_set_rf_region (zwave_rf_region_t rfregion)
 Set the current RF region. More...
 
zwave_rf_region_t zwapi_get_rf_region (void)
 Get the current RF region. More...
 
bool zwapi_is_pti_supported ()
 Check if PTI supported. More...
 
bool zwapi_is_pti_enabled ()
 Get the current state of pti. More...
 
sl_status_t zwapi_set_radio_pti (bool state)
 Enable/disable the PTI on Z-Wave Radio. More...
 
sl_status_t zwapi_get_maximum_payload_size (uint8_t *maximum_size)
 Get the maximum payload size allowed for sending frames in Z-Wave. More...
 
sl_status_t zwapi_get_lr_maximum_payload_size (uint8_t *maximum_size)
 Get the maximum payload size allowed for sending frames in Z-Wave Long Range. More...
 
sl_status_t zwapi_set_node_id_basetype (zwave_node_id_basetype_t basetype)
 Set Z-Wave node ID basetype, either 8 bits or 16 bits used to store a node ID. More...
 
zwave_node_id_basetype_t zwapi_get_node_id_basetype ()
 Get the current node ID basetype setting. More...
 
sl_status_t zwapi_soft_reset (void)
 Reset the Z-Wave module. More...
 
sl_status_t zwapi_send_test_frame (zwave_node_id_t node_id, rf_power_level_t power_level, void(*callback_function)(uint8_t tx_status))
 Send a test frame to specified NodeID. More...
 
uint8_t zwapi_get_zw_protocol_status (void)
 Report the status of the Z-Wave protocol. More...
 
sl_status_t zwapi_enable_watchdog ()
 Enable the Watchdog. More...
 
sl_status_t zwapi_disable_watchdog ()
 Disable the Watchdog. More...
 
sl_status_t zwapi_start_watchdog ()
 Enable Watchdog and start kicking it in the Z-Wave chip. More...
 
sl_status_t zwapi_get_random_word (uint8_t *random_buffer, uint8_t number_of_random_bytes)
 Generate an array of random bytes using the random number generator (RNG) on the Z-Wave module. More...
 
sl_status_t zwapi_get_random_byte (uint8_t *user_byte)
 Generate a random byte using the random number generator (RNG) on the Z-Wave module. More...
 
sl_status_t zwapi_explore_request_inclusion ()
 Transmit a request for inclusion via an explore frame. More...
 
sl_status_t zwapi_explore_request_exclusion ()
 Transmit a request for exclusion via an explore frame. More...
 
sl_status_t zwapi_get_background_rssi (uint8_t *rssi_values, uint8_t *values_length)
 Get the latest value of the background RSSI. More...
 
sl_status_t zwapi_set_application_node_information (uint8_t listening, node_type_t node_type, const uint8_t *nodeParm, uint8_t parmLength)
 Set ApplicationNodeInformation data to be used in subsequent calls to zwapi_send_node_information(). More...
 
sl_status_t zwapi_get_long_range_nodes (uint16_t *number_of_bytes, zwave_nodemask_t lr_node_list)
 Get Z-Wave Long Range node list in ZW_LR_NODEMASK_OFFSET offset of zwave_nodemask_t. More...
 
sl_status_t zwapi_get_full_node_list (zwave_nodemask_t node_list)
 Get the entire list of nodes in our network (both Z-Wave and Z-Wave Long Range) More...
 
sl_status_t zwapi_get_long_range_channel (uint8_t *lr_channel)
 Get the Z-Wave Long Range radio channel in use. More...
 
sl_status_t zwapi_set_long_range_channel (uint8_t lr_channel)
 Set the Z-Wave Long Range radio channel in use. More...
 
sl_status_t zwapi_enable_auto_program_mode (void)
 Enable Auto Programming mode. More...
 
bool zwapi_supports_long_range ()
 Return whether the Z-Wave module supports Long Range. More...
 
bool zwapi_supports_nls (void)
 Return whether the Z-Wave module supports Network Layer Security. More...
 

zwapi_nodeid_basetype_t

These definitions represent possible node id basetype settings for the Z-Wave module They are used with zwapi_set_node_id_basetype()

enum  zwave_node_id_basetype_t { NODEID_8BITS = 1 , NODEID_16BITS = 2 }
 

zwapi_get_zw_protocol_status() return value masks

#define ZW_PROTOCOL_STATUS_ROUTING   0x01
 
#define ZW_PROTOCOL_STATUS_SUC   0x02
 

Z-Wave Library Chip type

#define ZW_500_SERIES_CHIP_TYPE   5
 
#define ZW_500_SERIES_CHIP_REVISION   0
 

Chip type definitions for 700-series

#define ZW_GECKO_CHIP_TYPE(x)   ((x == 7) || (x == 8))
 
#define ZW_GECKO_CHIP_700   7
 
#define ZW_GECKO_CHIP_REVISION   0
 

Device option mask values

#define APPLICATION_NODEINFO_NOT_LISTENING   0x00
 
#define APPLICATION_NODEINFO_LISTENING   0x01
 
#define APPLICATION_NODEINFO_OPTIONAL_FUNCTIONALITY   0x02
 
#define APPLICATION_FREQ_LISTENING_MODE_1000ms   0x10
 
#define APPLICATION_FREQ_LISTENING_MODE_250ms   0x20
 

Detailed Description

Functions in the Z-Wave basis API.

Interface functions in this module are implemented within all Z-Wave nodes.

Macro Definition Documentation

◆ APPLICATION_FREQ_LISTENING_MODE_1000ms

#define APPLICATION_FREQ_LISTENING_MODE_1000ms   0x10

◆ APPLICATION_FREQ_LISTENING_MODE_250ms

#define APPLICATION_FREQ_LISTENING_MODE_250ms   0x20

◆ APPLICATION_NODEINFO_LISTENING

#define APPLICATION_NODEINFO_LISTENING   0x01

◆ APPLICATION_NODEINFO_NOT_LISTENING

#define APPLICATION_NODEINFO_NOT_LISTENING   0x00

◆ APPLICATION_NODEINFO_OPTIONAL_FUNCTIONALITY

#define APPLICATION_NODEINFO_OPTIONAL_FUNCTIONALITY   0x02

◆ ZW_500_SERIES_CHIP_REVISION

#define ZW_500_SERIES_CHIP_REVISION   0

◆ ZW_500_SERIES_CHIP_TYPE

#define ZW_500_SERIES_CHIP_TYPE   5

◆ ZW_AV_VERSION_MAJOR

#define ZW_AV_VERSION_MAJOR   1

◆ ZW_AV_VERSION_MINOR

#define ZW_AV_VERSION_MINOR   0

◆ ZW_GECKO_CHIP_700

#define ZW_GECKO_CHIP_700   7

◆ ZW_GECKO_CHIP_REVISION

#define ZW_GECKO_CHIP_REVISION   0

◆ ZW_GECKO_CHIP_TYPE

#define ZW_GECKO_CHIP_TYPE (   x)    ((x == 7) || (x == 8))

◆ ZW_INT_MASK_EXT1

#define ZW_INT_MASK_EXT1   0x02

Bit mask used as parameters for the API ZW_SetSleepMode to indicate which interrupt to mask out

◆ ZW_PROTOCOL_STATUS_ROUTING

#define ZW_PROTOCOL_STATUS_ROUTING   0x01

◆ ZW_PROTOCOL_STATUS_SUC

#define ZW_PROTOCOL_STATUS_SUC   0x02

Enumeration Type Documentation

◆ rf_power_level_t

RF power level values used with zwapi_set_rf_power_level() and zwapi_get_rf_power_level()

Enumerator
NORMAL_POWER 

Max power possible.

MINUS_1_DBM 

Normal power - 1dB (mapped to minus2dB)

MINUS_2_DBM 

Normal power - 2dB.

MINUS_3_DBM 

Normal power - 3dB (mapped to minus4dB)

MINUS_4_DBM 

Normal power - 4dB.

MINUS_5_DBM 

Normal power - 5dB (mapped to minus6dB)

MINUS_6_DBM 

Normal power - 6dB.

MINUS_7_DBM 

Normal power - 7dB (mapped to minus8dB)

MINUS_8_DBM 

Normal power - 8dB.

MINUS_9_DBM 

Normal power - 9dB (mapped to minus10dB)

MINIMUM_POWER 

Equal to minus9dBm.

◆ serial_api_setup_cmd_t

Bitflag definitions for FUNC_ID_SERIAL_API_SETUP command.

Enumerator
SERIAL_API_SETUP_CMD_UNSUPPORTED 
SERIAL_API_SETUP_CMD_SUPPORTED 
SERIAL_API_SETUP_CMD_TX_STATUS_REPORT 
SERIAL_API_SETUP_CMD_MAX_LR_TX_PWR_SET 
SERIAL_API_SETUP_CMD_TX_POWERLEVEL_SET 
SERIAL_API_SETUP_CMD_MAX_LR_TX_PWR_GET 
SERIAL_API_SETUP_CMD_TX_POWERLEVEL_GET 
SERIAL_API_SETUP_CMD_MAXIMUM_PAYLOAD_SIZE_GET 
SERIAL_API_SETUP_CMD_LR_MAXIMUM_PAYLOAD_SIZE_GET 
SERIAL_API_SETUP_CMD_RF_REGION_GET 
SERIAL_API_SETUP_CMD_RF_REGION_SET 
SERIAL_API_SETUP_CMD_NODEID_BASETYPE_SET 

◆ zwave_node_id_basetype_t

Enumerator
NODEID_8BITS 
NODEID_16BITS 

Function Documentation

◆ zwapi_disable_watchdog()

sl_status_t zwapi_disable_watchdog ( )

Disable the Watchdog.

Returns
SL_STATUS_OK or SL_STATUS_FAIL

aka ZW_WatchDogDisable

Here is the call graph for this function:

◆ zwapi_enable_auto_program_mode()

sl_status_t zwapi_enable_auto_program_mode ( void  )

Enable Auto Programming mode.

Returns
SL_STATUS_OK or SL_STATUS_FAIL.

aka ZW_AutoProgrammingEnable

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_enable_watchdog()

sl_status_t zwapi_enable_watchdog ( )

Enable the Watchdog.

Returns
SL_STATUS_OK or SL_STATUS_FAIL

aka ZW_WatchDogEnable

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_explore_request_exclusion()

sl_status_t zwapi_explore_request_exclusion ( )

Transmit a request for exclusion via an explore frame.

This function sends out an explorer frame requesting exclusion from the network. If the exclusion request is accepted by a controller in network wide exclusion mode, the application on this node will get notified through the callback from the zwapi_set_learn_mode() function. Once a callback is received from zwapi_set_learn_mode() saying that the exclusion process has started, the application should not make further calls to this function.

Note
Recommend not to call this function more than once every 4 seconds.
Returns
SL_STATUS_OK if the Exclusion request queued for transmission
SL_STATUS_FAIL if the node is not in learn mode

Tx: {REQ | 0x5E}

Rx: {RES | 0x5E | retVal}

aka ZW_ExploreRequestExclusion

Here is the call graph for this function:

◆ zwapi_explore_request_inclusion()

sl_status_t zwapi_explore_request_inclusion ( )

Transmit a request for inclusion via an explore frame.

Returns
SL_STATUS_OK if the Inclusion request queued for transmission
SL_STATUS_FAIL if the node is not in learn mode

This function sends out an explorer frame requesting inclusion into a network. If the inclusion request is accepted by a controller in network wide inclusion mode, the application on this node will get notified through the callback from the zwapi_set_learn_mode() function. Once a callback is received from zwapi_set_learn_mode() saying that the inclusion process has started, the application should not make further calls to this function.

Note
Recommend not to call this function more than once every 4 seconds.

Tx: {REQ | 0x5E}

Rx: {RES | 0x5E | retVal}

aka ZW_ExploreRequestInclusion

Here is the call graph for this function:

◆ zwapi_get_background_rssi()

sl_status_t zwapi_get_background_rssi ( uint8_t *  rssi_values,
uint8_t *  values_length 
)

Get the latest value of the background RSSI.

Parameters
rssi_valuespointer to array where RSSI values are stored.
values_lengthlength in bytes of the rssi_values array

Tx: {(no arguments)}

Rx: {RES | RSSI Ch0 | RSSI Ch1 | RSSI Ch2 (3CH systems only)}

aka ZW_GetBackgroundRSSI

Here is the call graph for this function:

◆ zwapi_get_full_node_list()

sl_status_t zwapi_get_full_node_list ( zwave_nodemask_t  node_list)

Get the entire list of nodes in our network (both Z-Wave and Z-Wave Long Range)

Parameters
node_listarray of type zwave_nodemask_t
Returns
SL_STATUS_OK in case of success, SL_STATUS_FAIL otherwise.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_get_long_range_channel()

sl_status_t zwapi_get_long_range_channel ( uint8_t *  lr_channel)

Get the Z-Wave Long Range radio channel in use.

Parameters
lr_channelThe Z-Wave Long Range radio channel currecntly in use
Returns
SL_STATUS_OK in case of success, SL_STATUS_FAIL otherwise.

aka GetLongRangeChannel

Here is the call graph for this function:

◆ zwapi_get_long_range_nodes()

sl_status_t zwapi_get_long_range_nodes ( uint16_t *  number_of_bytes,
zwave_nodemask_t  lr_node_list 
)

Get Z-Wave Long Range node list in ZW_LR_NODEMASK_OFFSET offset of zwave_nodemask_t.

This function copies Long Range node list bimask at ZW_LR_NODEMASK_OFFSET offest of zwave_nodemask_t

Parameters
number_of_bytesNumber of bytes in the returned node list
lr_node_listarray of type zwave_nodemask_t
Returns
SL_STATUS_OK in case of success, SL_STATUS_FAIL otherwise.

aka SerialAPI_GetLRNodeList

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_get_lr_maximum_payload_size()

sl_status_t zwapi_get_lr_maximum_payload_size ( uint8_t *  maximum_size)

Get the maximum payload size allowed for sending frames in Z-Wave Long Range.

Parameters
maximum_sizeThe value to indicate maximum payload size
Returns
SL_STATUS_OK in case of success, SL_STATUS_FAIL otherwise.
Here is the call graph for this function:

◆ zwapi_get_max_lr_tx_power_level()

int16_t zwapi_get_max_lr_tx_power_level ( void  )

Get the current MAX Long Range TX power level in effect.

Returns
MAX Long Range TX power level settings The power level is in deci dBm. E.g. 1dBm output power will be 10 in and -2dBm will be -20
Note
This API is available as of serial API version 7

Tx: {REQ | 0x0B | 0x05}

Rx: {RES | 0x0B | 0x05 | Max Long Range TX Powerlevel MSB | Max Long Range TX Powerlevel LSB}

aka ZW_MAXLRTXPowerLevelGet

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_get_maximum_payload_size()

sl_status_t zwapi_get_maximum_payload_size ( uint8_t *  maximum_size)

Get the maximum payload size allowed for sending frames in Z-Wave.

Parameters
maximum_sizeThe value to indicate maximum payload size
Returns
SL_STATUS_OK in case of success, SL_STATUS_FAIL otherwise.
Here is the call graph for this function:

◆ zwapi_get_node_id_basetype()

zwave_node_id_basetype_t zwapi_get_node_id_basetype ( )

Get the current node ID basetype setting.

Returns
basetype zwave_nodeid_basetype_t the current node ID basetype, NODEID_8BITS or NODEID_16BITS
Here is the caller graph for this function:

◆ zwapi_get_random_byte()

sl_status_t zwapi_get_random_byte ( uint8_t *  user_byte)

Generate a random byte using the random number generator (RNG) on the Z-Wave module.

Parameters
user_bytepointer to uint8_t variable where the random number will be copied. Nothing is copied if SL_STATUS_FAIL is returned.
Returns
SL_STATUS_OK in case of success, SL_STATUS_FAIL otherwise.

Tx: {HOST->ZW: REQ | 0x1D} Tx: {ZW->HOST: RES | 0x1D | rndNo}

aka ZW_Random(ZW_GetRandomArray)

Here is the call graph for this function:

◆ zwapi_get_random_word()

sl_status_t zwapi_get_random_word ( uint8_t *  random_buffer,
uint8_t  number_of_random_bytes 
)

Generate an array of random bytes using the random number generator (RNG) on the Z-Wave module.

Parameters
random_bufferpointer to buffer, which should receive the random bytes.
number_of_random_bytesNumber of random bytes to get into random_buffer. Max number is 32.
Returns
SL_STATUS_OK in case of success, SL_STATUS_FAIL otherwise.

Tx: {REQ | 0x1C | noRandomBytes}

Rx: {RES | 0x1C | randomGenerationSuccess | noRandomBytesGenerated | randombytes[]}

aka ZW_GetRandomWord (ZW_GetRandomArray)

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_get_rf_power_level()

rf_power_level_t zwapi_get_rf_power_level ( void  )

Get the current power level used in RF transmitting.

Returns
rf_power_level_t the power level currently in effect during RF transmissions.
Note
This function should only be used in an install/test link situation.

Tx: {REQ | 0xBA}

Rx: {RES | 0xBA | powerlevel}

aka ZW_RFPowerLevelGet

Here is the call graph for this function:

◆ zwapi_get_rf_region()

zwave_rf_region_t zwapi_get_rf_region ( void  )

Get the current RF region.

Returns
zwapi_rf_region_t the RF region currently in effect. REGION_UNDEFINED if unable to get RF region.

Tx: {REQ | 0x0B | 0x20}

Rx: {RES | 0x0B | 0x20 | RFRegion}

aka ZW_RFRegionGet

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_get_tx_power_level()

tx_power_level_t zwapi_get_tx_power_level ( void  )

Get the current TX power level in effect.

Returns
TX power level settings struct with the following members:
  • normal The power level used when transmitting frames at normal power. The power level is in deci dBm. E.g. 1dBm output power will be 10 in NormalTxPower and -2dBm will be -20 in NormalTxPower.
  • measured0dBm The output power measured from the antenna when NormalTxPower is set to 0dBm. The power level is in deci dBm. E.g. 1dBm output power will be 10 in Measured0dBmPower and -2dBm will be -20 in Measured0dBmPower.
Note
This API is available as of serial API version 7

Tx: {REQ | 0x0B | 0x08}

Rx: {RES | 0x0B | 0x08 | NormalTxPower | Measured0dBmPower}

aka ZW_TXPowerLevelGet

Here is the call graph for this function:

◆ zwapi_get_zw_library_type()

uint8_t zwapi_get_zw_library_type ( void  )

Get the Z-Wave library type.

Note
: Use this function only if necessary to query a fresh value. zwapi_get_library_type will provide the cached value at initialization
Returns
Z-Wave library type:

aka ZW_Type_Library

Here is the call graph for this function:

◆ zwapi_get_zw_library_version()

uint8_t zwapi_get_zw_library_version ( uint8_t *  dst)

Get the Z-Wave library basis version.

Parameters
dstpointer to buffer where version string will be copied to. The buffer must be at least 14 bytes long. If it is NULL, nothing will be copied.
Returns
the Library type ZW_LIB_xxx

aka ZW_Version

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_get_zw_protocol_status()

uint8_t zwapi_get_zw_protocol_status ( void  )

Report the status of the Z-Wave protocol.

Returns
0 if protocol is idle.
ZW_PROTOCOL_STATUS_ROUTING if protocol is analyzing the routing table.
ZW_PROTOCOL_STATUS_SUC if SUC sends pending updates.

The function returns a mask telling which protocol function is currently running

Tx: {REQ | 0xBF}

Rx: {RES | 0xBF | retVal}

aka ZW_GetProtocolStatus

Here is the call graph for this function:

◆ zwapi_is_pti_enabled()

bool zwapi_is_pti_enabled ( )

Get the current state of pti.

Returns
true on enabled, false on disabled
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_is_pti_supported()

bool zwapi_is_pti_supported ( )

Check if PTI supported.

Returns
True if supported, False on NO support
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_send_node_information()

sl_status_t zwapi_send_node_information ( zwave_node_id_t  destNode,
uint8_t  txOptions,
void(*)(uint8_t)  completedFunc 
)

Create and transmit a "Node Information" frame.

Parameters
destNodeis the destination Node ID (ZWAVE_BROADCAST_NODE_ID == all nodes)
txOptionsis transmit option flags. (see zwapi_send_data())
completedFuncis the transmit completed callback function. For information about the txStatus parameter see zwapi_send_data().
Returns
true if frame was put in the transmit queue.
false if frame was not put in transmit queue (possibly due to transmit queue overflow). The completedFunc callback will not be called.

The Z Wave transport layer builds a frame, requests application node information (see ApplicationNodeInformation), and queues the "Node Information" frame for transmission. The completed call back function (completedFunc) is called when the transmission is complete.

The Node Information Frame is a protocol frame and will therefore not be directly available to the application on the receiver. The API call zwapi_set_learn_mode() can be used to instruct the protocol to pass the Node Information Frame to the application.

When zwapi_send_node_information() is used in learn mode for adding or removing the node from the network the transmit option TRANSMIT_OPTION_LOW_POWER should NOT be used.

Note
zwapi_send_node_information uses the transmit queue in the API, so using other transmit functions before the complete callback has been called by the API is not recommended.

Timeout: 65 s Exception recovery: Resume normal operation, no recovery needed

Tx: {REQ | 0x12 | destNode | txOptions | funcID}

Rx: {RES | 0x12 | retVal}

Rx: {REQ | 0x12 | funcID | txStatus}

aka ZW_SendNodeInformation

Here is the call graph for this function:

◆ zwapi_send_test_frame()

sl_status_t zwapi_send_test_frame ( zwave_node_id_t  node_id,
rf_power_level_t  power_level,
void(*)(uint8_t tx_status)  callback_function 
)

Send a test frame to specified NodeID.

Parameters
node_idthe NodeID destination the test frame will be transmitted to.
power_levelthe power level to use for the RF transmission.
callback_functionis the callback function that will be called when the operation of this function is done. For information about the tx_status parameter, refer to zwapi_send_data
Returns
SL_STATUS_OK if the frame was sent.
SL_STATUS_FAIL if the frame was not sent.

Send a test frame directly to nodeID without any routing, RF transmission power is previously set to power level by calling zwapi_set_rf_power_level(). The test frame is acknowledged at the RF transmission power level indicated by the parameter power level by nodeID (if the test frame got through).This test will be done using 9600 kbit/s transmission rate.

Note
This function should only be used in an install/test link situation.

Timeout: 200 ms Exception recovery: Resume normal operation, no recovery needed

aka ZW_SendTestFrame

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_set_application_node_information()

sl_status_t zwapi_set_application_node_information ( uint8_t  listening,
node_type_t  node_type,
const uint8_t *  nodeParm,
uint8_t  parmLength 
)

Set ApplicationNodeInformation data to be used in subsequent calls to zwapi_send_node_information().

Parameters
listeningSet to APPLICATION_NODEINFO_LISTENING if this is a listening node, otherwise set to APPLICATION_NODEINFO_NOT_LISTENING.
node_typethe Z-Wave Device type (the .basic member is not used here)
nodeParmthe Device parameter buffer
parmLengththe number of Device parameter bytes

aka SerialAPI_ApplicationNodeInformation

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_set_long_range_channel()

sl_status_t zwapi_set_long_range_channel ( uint8_t  lr_channel)

Set the Z-Wave Long Range radio channel in use.

Parameters
lr_channelThe value intended to set for current Z-Wave Long Range radio channel
Returns
SL_STATUS_OK in case of success, SL_STATUS_FAIL otherwise.

aka SetLongRangeChannel

Here is the call graph for this function:

◆ zwapi_set_max_lr_tx_power_level()

sl_status_t zwapi_set_max_lr_tx_power_level ( int16_t  level)

Set the current MAX Long Range TX power level.

Parameters
levelTX power level settings The power level is in deci dBm. E.g. 1dBm output power will be 10 in and -2dBm will be -20
Returns
SL_STATUS_OK if the power level was set successfully.
SL_STATUS_NOT_SUPPORTED if the Z-Wave module does not support this function.
SL_STATUS_FAIL if the power level could not be set.
Note
This API is available as of serial API version 7

Tx: {REQ | 0x0B | 0x03 | Max Long Range TX Powerlevel MSB | Max Long Range TX Powerlevel LSB}

Rx: {RES | 0x0B | 0x03 | CmdRes}

aka ZW_MAXLRTXPowerLevelSet

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_set_node_id_basetype()

sl_status_t zwapi_set_node_id_basetype ( zwave_node_id_basetype_t  basetype)

Set Z-Wave node ID basetype, either 8 bits or 16 bits used to store a node ID.

Parameters
basetypezwave_node_id_basetype_t the basetype to be set, NODEID_8BITS or NODEID_16BITS
Returns
SL_STATUS_OK in case of success, SL_STATUS_FAIL otherwise.

aka SerialAPI_GetLRNodeList

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_set_radio_pti()

sl_status_t zwapi_set_radio_pti ( bool  state)

Enable/disable the PTI on Z-Wave Radio.

zwapi_soft_reset() MUST be called after call to this function.

zwapi_is_pti_enabled() can be called to verify if the PTI is enabled

Parameters
stateTrue to enable, False to disable
Returns
SL_STATUS_OK if successfully enabled PTI SL_STATUS_FAIL if failure in enabling/disabling PTI SL_STATUS_NOT_SUPPORTED if FUNC_ID_ENABLE_RADIO_PTI or FUNC_ID_GET_RADIO_PTI not supported
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_set_rf_power_level()

rf_power_level_t zwapi_set_rf_power_level ( rf_power_level_t  powerLevel)

Set the power level to used in RF transmissions.

Parameters
powerLevelthe power level to use in RF transmission.
Returns
rf_power_level_t the power level set in the Z-Wave Radio Module.

The RF power is dependent on the settings for transmit power level in App_RFSetup.a51. If this value is changed from using the default library value, the resulting power levels might differ from the intended values. The returned value is however always the one used.

Note
This function should only be used in an install/test link situation and the power level should always be set back to NORMAL_POWER when the testing is done.

Tx: {REQ | 0x17 | powerLevel}

Rx: {RES | 0x17 | retVal}

aka ZW_RFPowerLevelSet

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_set_rf_receive_mode()

sl_status_t zwapi_set_rf_receive_mode ( uint8_t  mode)

Initialize the Z-Wave RF chip.

Parameters
modeis the Z-Wave Radio receiver mode = true : Set the RF chip in receive mode and starts the data sampling.
= false : Set the RF chip in power down mode.
Returns
returns SL_STATUS_OK if operation was executed successfully, SL_STATUS_FAIL otherwise.

aka ZW_SetRFReceiveMode

Here is the call graph for this function:

◆ zwapi_set_rf_region()

sl_status_t zwapi_set_rf_region ( zwave_rf_region_t  rfregion)

Set the current RF region.

Parameters
rfregionthe RF region
Returns
SL_STATUS_OK the RF region was set successfully.
SL_STATUS_FAIL the RF region was not set.

Tx: {REQ | 0x0B | 0x40 | RFRegion}

Rx: {RES | 0x0B | 0x40 | CmdRes}

aka ZW_RFRegionSet

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_set_tx_power_level()

sl_status_t zwapi_set_tx_power_level ( tx_power_level_t  zw_txpowerlevel)

Set the current TX power level.

Parameters
zw_txpowerlevelTX power level settings struct with the following members:
  • normal The power level used when transmitting frames at normal power. The power level is in deci dBm. E.g. 1dBm output power will be 10 in NormalTxPower and -2dBm will be -20 in NormalTxPower.
  • measured0dBm The output power measured from the antenna when NormalTxPower is set to 0dBm. The power level is in deci dBm. E.g. 1dBm output power will be 10 in Measured0dBmPower and -2dBm will be -20 in Measured0dBmPower.
Returns
SL_STATUS_OK if the TX power level was set successfully.
SL_STATUS_NOT_SUPPORTED if the Z-Wave module does not support this function.
SL_STATUS_FAIL if the TX power level could not be set.
Note
This API is available as of serial API version 7

Tx: {REQ | 0x0B | 0x04 | NormalTxPower | Measured0dBmPower}

Rx: {RES | 0x0B | 0x04 | CmdRes}

aka ZW_TXPowerLevelSet

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_set_tx_status_reporting()

sl_status_t zwapi_set_tx_status_reporting ( bool  enable)

Configure whether zwapi_send_data callbacks should contain tx_status report information.

Parameters
enabletrue will enabled tx_status reporting, false will disable it.
Returns
SL_STATUS_OK if the tx_status_report was set successfully.
SL_STATUS_NOT_SUPPORTED if the Z-Wave Module does not support this function
SL_STATUS_FAIL if the setting could not be changed.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_soft_reset()

sl_status_t zwapi_soft_reset ( void  )

Reset the Z-Wave module.

Note
USB modules will do a disconnect - connect when this command is issued. This means that the module may get a new address on the USB bus. This will make the old file handle to the USB serial interface invalid.
Recent Z-Wave versions (at least 6.80 and 7.00) will return FUNC_ID_SERIAL_API_STARTED once restarted.

Tx: {REQ | 0x08}

aka ZW_SoftReset

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_start_watchdog()

sl_status_t zwapi_start_watchdog ( )

Enable Watchdog and start kicking it in the Z-Wave chip.

Returns
SL_STATUS_OK or SL_STATUS_FAIL

Tx: {REQ | 0xD2}

aka SerialAPI_WatchdogStart

Here is the call graph for this function:

◆ zwapi_supports_long_range()

bool zwapi_supports_long_range ( )

Return whether the Z-Wave module supports Long Range.

Returns
True or False

aka SerialAPI_SupportsLR

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwapi_supports_nls()

bool zwapi_supports_nls ( void  )

Return whether the Z-Wave module supports Network Layer Security.

Returns
True or False
Here is the call graph for this function: