19#ifndef ZWAPI_PROTOCOL_BASIS_H
20#define ZWAPI_PROTOCOL_BASIS_H
66#define ZW_PROTOCOL_STATUS_ROUTING 0x01
67#define ZW_PROTOCOL_STATUS_SUC 0x02
72#define ZW_INT_MASK_EXT1 0x02
74#define ZW_AV_VERSION_MAJOR 1
75#define ZW_AV_VERSION_MINOR 0
79#define ZW_500_SERIES_CHIP_TYPE 5
80#define ZW_500_SERIES_CHIP_REVISION 0
85#define ZW_GECKO_CHIP_TYPE(x) ((x == 7) || (x == 8))
86#define ZW_GECKO_CHIP_700 7
87#define ZW_GECKO_CHIP_REVISION 0
116#define APPLICATION_NODEINFO_NOT_LISTENING 0x00
117#define APPLICATION_NODEINFO_LISTENING 0x01
118#define APPLICATION_NODEINFO_OPTIONAL_FUNCTIONALITY 0x02
119#define APPLICATION_FREQ_LISTENING_MODE_1000ms 0x10
120#define APPLICATION_FREQ_LISTENING_MODE_250ms 0x20
179 void (*completedFunc)(uint8_t));
483 void (*callback_function)(uint8_t tx_status));
547 uint8_t number_of_random_bytes);
623 uint8_t *values_length);
639 const uint8_t *nodeParm,
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.
Definition: zwapi_protocol_basis.c:539
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().
Definition: zwapi_protocol_basis.c:705
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.
Definition: zwapi_protocol_basis.c:489
sl_status_t zwapi_enable_watchdog()
Enable the Watchdog.
Definition: zwapi_protocol_basis.c:666
rf_power_level_t zwapi_get_rf_power_level(void)
Get the current power level used in RF transmitting.
Definition: zwapi_protocol_basis.c:161
bool zwapi_supports_long_range()
Return whether the Z-Wave module supports Long Range.
Definition: zwapi_protocol_basis.c:828
sl_status_t zwapi_start_watchdog()
Enable Watchdog and start kicking it in the Z-Wave chip.
Definition: zwapi_protocol_basis.c:671
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.
Definition: zwapi_protocol_basis.c:750
rf_power_level_t zwapi_set_rf_power_level(rf_power_level_t powerLevel)
Set the power level to used in RF transmissions.
Definition: zwapi_protocol_basis.c:140
zwave_rf_region_t zwapi_get_rf_region(void)
Get the current RF region.
Definition: zwapi_protocol_basis.c:401
sl_status_t zwapi_set_long_range_channel(uint8_t lr_channel)
Set the Z-Wave Long Range radio channel in use.
Definition: zwapi_protocol_basis.c:815
sl_status_t zwapi_soft_reset(void)
Reset the Z-Wave module.
Definition: zwapi_protocol_basis.c:43
sl_status_t zwapi_enable_auto_program_mode(void)
Enable Auto Programming mode.
Definition: zwapi_protocol_basis.c:725
bool zwapi_supports_nls(void)
Return whether the Z-Wave module supports Network Layer Security.
Definition: zwapi_protocol_basis.c:843
sl_status_t zwapi_set_rf_receive_mode(uint8_t mode)
Initialize the Z-Wave RF chip.
Definition: zwapi_protocol_basis.c:119
sl_status_t zwapi_get_maximum_payload_size(uint8_t *maximum_size)
Get the maximum payload size allowed for sending frames in Z-Wave.
Definition: zwapi_protocol_basis.c:433
sl_status_t zwapi_get_background_rssi(uint8_t *rssi_values, uint8_t *values_length)
Get the latest value of the background RSSI.
Definition: zwapi_protocol_basis.c:676
sl_status_t zwapi_set_rf_region(zwave_rf_region_t rfregion)
Set the current RF region.
Definition: zwapi_protocol_basis.c:368
tx_power_level_t zwapi_get_tx_power_level(void)
Get the current TX power level in effect.
Definition: zwapi_protocol_basis.c:284
bool zwapi_is_pti_supported()
Check if PTI supported.
Definition: zwapi_protocol_basis.c:314
bool zwapi_is_pti_enabled()
Get the current state of pti.
Definition: zwapi_protocol_basis.c:323
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)
Definition: zwapi_protocol_basis.c:732
int16_t zwapi_get_max_lr_tx_power_level(void)
Get the current MAX Long Range TX power level in effect.
Definition: zwapi_protocol_basis.c:256
zwave_node_id_basetype_t zwapi_get_node_id_basetype()
Get the current node ID basetype setting.
Definition: zwapi_protocol_basis.c:518
sl_status_t zwapi_explore_request_exclusion()
Transmit a request for exclusion via an explore frame.
Definition: zwapi_protocol_basis.c:642
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.
Definition: zwapi_protocol_basis.c:461
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.
Definition: zwapi_protocol_basis.c:523
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.
Definition: zwapi_protocol_basis.c:566
sl_status_t zwapi_explore_request_inclusion()
Transmit a request for inclusion via an explore frame.
Definition: zwapi_protocol_basis.c:620
uint8_t zwapi_get_zw_library_type(void)
Get the Z-Wave library type.
Definition: zwapi_protocol_basis.c:79
sl_status_t zwapi_set_tx_power_level(tx_power_level_t zw_txpowerlevel)
Set the current TX power level.
Definition: zwapi_protocol_basis.c:229
sl_status_t zwapi_set_tx_status_reporting(bool enable)
Configure whether zwapi_send_data callbacks should contain tx_status report information.
Definition: zwapi_protocol_basis.c:178
uint8_t zwapi_get_zw_library_version(uint8_t *dst)
Get the Z-Wave library basis version.
Definition: zwapi_protocol_basis.c:98
serial_api_setup_cmd_t
Bitflag definitions for FUNC_ID_SERIAL_API_SETUP command.
Definition: zwapi_protocol_basis.h:42
sl_status_t zwapi_set_max_lr_tx_power_level(int16_t level)
Set the current MAX Long Range TX power level.
Definition: zwapi_protocol_basis.c:202
rf_power_level_t
Definition: zwapi_protocol_basis.h:100
uint8_t zwapi_get_zw_protocol_status(void)
Report the status of the Z-Wave protocol.
Definition: zwapi_protocol_basis.c:61
zwave_node_id_basetype_t
Definition: zwapi_protocol_basis.h:61
sl_status_t zwapi_disable_watchdog()
Disable the Watchdog.
Definition: zwapi_protocol_basis.c:661
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.
Definition: zwapi_protocol_basis.c:599
sl_status_t zwapi_get_long_range_channel(uint8_t *lr_channel)
Get the Z-Wave Long Range radio channel in use.
Definition: zwapi_protocol_basis.c:799
sl_status_t zwapi_set_radio_pti(bool state)
Enable/disable the PTI on Z-Wave Radio.
Definition: zwapi_protocol_basis.c:344
@ SERIAL_API_SETUP_CMD_LR_MAXIMUM_PAYLOAD_SIZE_GET
Definition: zwapi_protocol_basis.h:51
@ SERIAL_API_SETUP_CMD_SUPPORTED
Definition: zwapi_protocol_basis.h:44
@ SERIAL_API_SETUP_CMD_NODEID_BASETYPE_SET
Definition: zwapi_protocol_basis.h:54
@ SERIAL_API_SETUP_CMD_UNSUPPORTED
Definition: zwapi_protocol_basis.h:43
@ SERIAL_API_SETUP_CMD_TX_STATUS_REPORT
Definition: zwapi_protocol_basis.h:45
@ SERIAL_API_SETUP_CMD_MAX_LR_TX_PWR_SET
Definition: zwapi_protocol_basis.h:46
@ SERIAL_API_SETUP_CMD_MAX_LR_TX_PWR_GET
Definition: zwapi_protocol_basis.h:48
@ SERIAL_API_SETUP_CMD_TX_POWERLEVEL_GET
Definition: zwapi_protocol_basis.h:49
@ SERIAL_API_SETUP_CMD_TX_POWERLEVEL_SET
Definition: zwapi_protocol_basis.h:47
@ SERIAL_API_SETUP_CMD_RF_REGION_GET
Definition: zwapi_protocol_basis.h:52
@ SERIAL_API_SETUP_CMD_RF_REGION_SET
Definition: zwapi_protocol_basis.h:53
@ SERIAL_API_SETUP_CMD_MAXIMUM_PAYLOAD_SIZE_GET
Definition: zwapi_protocol_basis.h:50
@ MINUS_9_DBM
Normal power - 9dB (mapped to minus10dB)
Definition: zwapi_protocol_basis.h:110
@ MINUS_7_DBM
Normal power - 7dB (mapped to minus8dB)
Definition: zwapi_protocol_basis.h:108
@ MINUS_1_DBM
Normal power - 1dB (mapped to minus2dB)
Definition: zwapi_protocol_basis.h:102
@ MINUS_3_DBM
Normal power - 3dB (mapped to minus4dB)
Definition: zwapi_protocol_basis.h:104
@ MINUS_5_DBM
Normal power - 5dB (mapped to minus6dB)
Definition: zwapi_protocol_basis.h:106
@ MINUS_6_DBM
Normal power - 6dB.
Definition: zwapi_protocol_basis.h:107
@ MINUS_8_DBM
Normal power - 8dB.
Definition: zwapi_protocol_basis.h:109
@ MINUS_2_DBM
Normal power - 2dB.
Definition: zwapi_protocol_basis.h:103
@ NORMAL_POWER
Max power possible.
Definition: zwapi_protocol_basis.h:101
@ MINIMUM_POWER
Equal to minus9dBm.
Definition: zwapi_protocol_basis.h:111
@ MINUS_4_DBM
Normal power - 4dB.
Definition: zwapi_protocol_basis.h:105
@ NODEID_16BITS
Definition: zwapi_protocol_basis.h:61
@ NODEID_8BITS
Definition: zwapi_protocol_basis.h:61
uint32_t sl_status_t
Definition: sl_status.h:139
uint8_t zwave_nodemask_t[ZW_LR_MAX_NODEMASK_LENGTH]
Node mask.
Definition: zwave_node_id_definitions.h:81
uint16_t zwave_node_id_t
Z-Wave NodeID type.
Definition: zwave_node_id_definitions.h:84
zwave_rf_region_t
Definition: zwave_rf_region.h:31
Node type structure, used in Node Information Frames.
Definition: zwave_node_id_definitions.h:128
Definition: zwapi_protocol_basis.h:92
int8_t normal
TX power level at normal power.
Definition: zwapi_protocol_basis.h:93
int8_t measured0dBm
Measured output power from antenna when normal is set to 0.
Definition: zwapi_protocol_basis.h:95
const zwave_node_id_t node_id
static send_data_state_t state
Definition: zwave_crc16_transport.c:52