Z-Wave Protocol Controller Reference
zwapi_init.h File Reference

Z-Wave API initialization functions. More...

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

Go to the source code of this file.

Classes

struct  zwapi_chip_data_t
 
struct  _zwapi_protocol_version_information_t_
 
struct  zwapi_callbacks
 Structure holding the application callback functions. More...
 

Macros

#define ZWAPI_MAXIMUM_BITMASK_LENGTH   (255 / 8)
 
#define GIT_COMMIT_HASH_SIZE   16
 
Flags used in FUNC_ID_SERIAL_API_GET_INIT_DATA functionality
#define GET_INIT_DATA_FLAG_END_NODE_API   0x01
 
#define GET_INIT_DATA_FLAG_TIMER_SUPPORT   0x02
 
#define GET_INIT_DATA_FLAG_CONTROLLER_STATUS   0x04
 
#define GET_INIT_DATA_FLAG_SECONDARY_CTRL   0x04
 
#define GET_INIT_DATA_FLAG_IS_SUC   0x08
 

Typedefs

typedef struct _zwapi_protocol_version_information_t_ zwapi_protocol_version_information_t
 
typedef void(* application_command_handler_function) (uint8_t rx_status, zwave_node_id_t destination_node_id, zwave_node_id_t source_node_id, const uint8_t *received_frame, uint8_t received_frame_length, int8_t rssi_value)
 Application command handler function type definition. More...
 
typedef void(* protocol_cc_encryption_command_handler_function) (zwave_node_id_t destination_node_id, uint8_t payload_length, const uint8_t *payload, uint8_t protocol_metadata_length, const uint8_t *const protocol_metadata, uint8_t use_supervision, uint8_t session_id)
 
typedef void(* application_controller_update_function) (uint8_t status, zwave_node_id_t node_id, const uint8_t *zwave_nif, uint8_t zwave_nif_length, zwave_home_id_t nwi_home_id)
 Application controller update function type definition. More...
 
typedef struct zwapi_callbacks zwapi_callbacks_t
 Structure holding the application callback functions. More...
 

Enumerations

zwapi_library_type_t

One of these defines are returned when requesting library type with zwapi_get_zw_library_type() / zwapi_get_library_type()

enum  zwapi_library_type_t {
  ZWAVE_LIBRARY_TYPE_CONTROLLER_STATIC = 0x01 , ZWAVE_LIBRARY_TYPE_CONTROLLER = 0x02 , ZWAVE_LIBRARY_TYPE_END_NODE_ENHANCED = 0x03 , ZWAVE_LIBRARY_TYPE_END_NODE = 0x04 ,
  ZWAVE_LIBRARY_TYPE_INSTALLER = 0x05 , ZWAVE_LIBRARY_TYPE_END_NODE_ROUTING = 0x06 , ZWAVE_LIBRARY_TYPE_CONTROLLER_BRIDGE = 0x07 , ZWAVE_LIBRARY_TYPE_DUT = 0x08 ,
  ZWAVE_LIBRARY_TYPE_AVREMOTE = 0x0A , ZWAVE_LIBRARY_TYPE_AVDEVICE = 0x0B
}
 
zwave_lr_channel_t

List of available Z-Wave Long Range Channels. Refer to zwapi_get_zwave_lr_channel() and zwapi_set_zwave_lr_channel

enum  zwave_lr_channel_t { ZWAVE_LONG_RANGE_CHANNEL_NOT_SUPPORTED = 0x00 , ZWAVE_LONG_RANGE_CHANNEL_A = 0x01 , ZWAVE_LONG_RANGE_CHANNEL_B = 0x02 }
 

Functions

sl_status_t zwapi_init (const char *serial_port, int *serial_fd, const zwapi_callbacks_t *callbacks)
 
void zwapi_destroy (void)
 Shut down the Z-Wave API and close the communication ports. More...
 
sl_status_t zwapi_log_to_file_enable (const char *filename)
 Enable logging of serial data to a file. More...
 
sl_status_t zwapi_log_to_file_disable ()
 Disable/stop logging serial data to file. More...
 
bool zwapi_poll (void)
 Main poll loop for the Z-Wave API. More...
 
bool zwapi_support_command_func (uint8_t func_id)
 Check if a command is supported by the connected Z-Wave module. More...
 
bool zwapi_support_setup_func (serial_api_setup_cmd_t setup_cmd)
 Check if one of the serial API setup commands is supported. More...
 
sl_status_t zwapi_refresh_capabilities (void)
 Refresh the whole zwapi_chip_data_t structure from the Z-Wave module. More...
 
sl_status_t zwapi_get_init_data (uint8_t *ver, uint8_t *capabilities, uint8_t *len, zwave_nodemask_t node_list, uint8_t *chip_type, uint8_t *chip_version)
 Get zwave_api initialization data from the remote side (Enhanced Z-Wave module). More...
 
sl_status_t zwapi_get_node_list (zwave_nodemask_t node_list)
 Refresh the node list from the Z-Wave protocol and copy in into the node_list pointer. More...
 
void zwapi_get_chip_type_version (uint8_t *type, uint8_t *version)
 Look up the cached chip type and chip version. More...
 
void zwapi_get_app_version (uint8_t *major, uint8_t *minor)
 Get the application version of the serial API on the Z-Wave module. More...
 
void zwapi_get_chip_data (zwapi_chip_data_t *user_chip_data)
 Return all information known about the chip after initialization. More...
 
zwapi_library_type_t zwapi_get_library_type ()
 returns the cached value of the library type for the module More...
 
sl_status_t zwapi_get_protocol_version (zwapi_protocol_version_information_t *protocol_version)
 Retrieves versioning data from the Z-Wave API Module. More...
 
zwave_lr_channel_t zwapi_get_zwave_lr_channel ()
 Reads the currently configured Z-Wave Long Range Channel. More...
 
sl_status_t zwapi_set_zwave_lr_channel (zwave_lr_channel_t new_channel)
 Sets the desired Z-Wave Long Range Channel configuration. More...
 
bool zwapi_is_awaiting_zwave_api_started ()
 Checks if we are waiting for a Z-Wave API started message. More...
 
void zwapi_set_awaiting_zwave_api_started (bool value)
 Sets the value of "awaiting a Z-Wave API started callback". More...
 
zwapi_callbacks_tzwave_api_get_callbacks ()
 Returns the pointer to the callbacks registered at init. More...
 
const char * zwapi_generate_sdk_version_from_protocol_version (const char *version_string)
 Convert protocol version string to Z-Wave SDK version string. More...
 
const char * zwapi_generate_nvm_id_from_sdk_version (const char *sdk_ver, zwapi_library_type_t library_type)
 Convert Z-Wave SDK version to the NVM ID. More...
 

Detailed Description

Z-Wave API initialization functions.