ZAF Interface#

Enumerations#

enum
EINCLUSIONMODE_NOT_SET = 0
EINCLUSIONMODE_ZWAVE_CLS
EINCLUSIONMODE_ZWAVE_LR
}

Used to indicate node inclusion type that related to it working over Long Range or Z-Wave mode.

Typedefs#

typedef void(*

Functions#

void
ZAF_Init(TaskHandle_t AppTaskHandle, SApplicationHandles *pAppHandles)

Initializes the Z-Wave Application Framework.

void
ZAF_Reset(void)

Reset ZAF and command classes that have registered a reset function with a REGISTER_CC macro.

TaskHandle_t

Returns the task handle set by ZAF_Init().

void

Makes the node stay awake for either 2 or 10 seconds.

void

Function called when the EVENT_SYSTEM_LEARNMODE_FINISHED is received.

void
ZAF_setAppHandle(SApplicationHandles *pAppHandle)

Pass an application handle to the ZAF framework with pointers to application resources.

void
ZAF_setPowerLock(zpal_pm_handle_t powerLock)

Pass an application power lock handle to the ZAF framework.

void
ZAF_SetCPHandle(CP_Handle_t handle)

Set the CP context.

Get m_pAppHandles object.

Get Protocol Info object.

Get Notifying queue object.

Get Notifying queue object used for ZW Command Queue.

Get Network Statistics object.

Get m_PowerLock object.

uint8_t

Returns the granted security keys.

Get Command Publisher handle Any other module can request the address of the CP context to use the API.

bool
isFLiRS(const SAppNodeInfo_t *pAppNodeInfo)

Check if device is FLiRS based on device option mask.

Returns the current inclusion state of the node.

Returns the current ID of the node.

uint32_t

Returns the current home ID.

Returns the current Suc node ID.

Returns the current inclusion mode of the node, which indicates whether the node is acting as a Z-Wave or Z-Wave LR node.

bool
isRfRegionValid(zpal_radio_region_t region)

Checks if region is supported by Z-Wave stack.

bool
ZAF_isLongRangeRegion(zpal_radio_region_t eRegion)

Check if eRegion is a Long Range region.

void
zaf_set_stay_awake_callback(zaf_wake_up_callback_t callback)

Registers a wake up function to keep the node awake.

Returns the wake up callback.

Enumeration Documentation#

EInclusionMode_t#

EInclusionMode_t

Used to indicate node inclusion type that related to it working over Long Range or Z-Wave mode.

This information will be used to distinguish between these two mode in order to indicate the needed operations when they differ between Z-Wave and Long Range.

Enumerator
EINCLUSIONMODE_NOT_SET
EINCLUSIONMODE_ZWAVE_CLS

!< Does not indicate inclusion state, but that it is undefined!

EINCLUSIONMODE_ZWAVE_LR

!< This node was included as a Z-Wave Classic device.


Typedef Documentation#

zaf_wake_up_callback_t#

typedef void(* zaf_wake_up_callback_t) (void) )(void)

Function Documentation#

ZAF_Init#

void ZAF_Init (TaskHandle_t AppTaskHandle, SApplicationHandles * pAppHandles)

Initializes the Z-Wave Application Framework.

Parameters
TypeDirectionArgument NameDescription
TaskHandle_tN/AAppTaskHandle

Task handle

SApplicationHandles *N/ApAppHandles

pointer to Application Handle in application

This function must be invoked by end devices and portable controllers, but not Serial API.

It initializes the following stuff:

  • Application timer

  • Board

  • Application file system

  • Power lock for FLiRS

  • True Status

  • Command Publisher

  • All command classes that have registered an init function.

  • Generates the three lists of command classes used for Node Information Frame, etc.


ZAF_Reset#

void ZAF_Reset (void )

Reset ZAF and command classes that have registered a reset function with a REGISTER_CC macro.

Parameters
TypeDirectionArgument NameDescription
voidN/A

ZAF_getAppTaskHandle#

TaskHandle_t ZAF_getAppTaskHandle (void )

Returns the task handle set by ZAF_Init().

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • Task handle.


zaf_stay_awake#

void zaf_stay_awake (void )

Makes the node stay awake for either 2 or 10 seconds.

Parameters
TypeDirectionArgument NameDescription
voidN/A

For an LS (listening sleeping) node, the node will stay awake for 2 seconds. If the node supports CC Wake Up, it will stay awake for 10 seconds, if CC Wake Up is active.

For RS (reporting sleeping), the node will stay awake for 10 seconds, if CC Wake Up is active.


zaf_learn_mode_finished#

void zaf_learn_mode_finished (void )

Function called when the EVENT_SYSTEM_LEARNMODE_FINISHED is received.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This function is weakly defined and can be overwritten by one command class. Applications should not overwrite this function instead they should handle the event. CC WakeUp overwrites it.


ZAF_setAppHandle#

void ZAF_setAppHandle (SApplicationHandles * pAppHandle)

Pass an application handle to the ZAF framework with pointers to application resources.

Parameters
TypeDirectionArgument NameDescription
SApplicationHandles *N/ApAppHandle

pointer to Application Handle in application

Can be later used by CC-s.


ZAF_setPowerLock#

void ZAF_setPowerLock (zpal_pm_handle_t powerLock)

Pass an application power lock handle to the ZAF framework.

Parameters
TypeDirectionArgument NameDescription
zpal_pm_handle_tN/ApowerLock

pointer to power lock object in application

Can be later used by CC-s. Used for Power management in case of wake up of FLiRS nodes.


ZAF_SetCPHandle#

void ZAF_SetCPHandle (CP_Handle_t handle)

Set the CP context.

Parameters
TypeDirectionArgument NameDescription
CP_Handle_tN/Ahandle

to set

The application should use this an initialization, so the ZAF_Common interface can redistribute the pContext address subsequently


ZAF_getAppHandle#

SApplicationHandles * ZAF_getAppHandle (void )

Get m_pAppHandles object.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • m_pAppHandles


ZAF_getProtocolInfo#

const SProtocolInfo * ZAF_getProtocolInfo (void )

Get Protocol Info object.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • pProtocolInfo member of m_pAppHandles


ZAF_getZwTxQueue#

SQueueNotifying * ZAF_getZwTxQueue (void )

Get Notifying queue object.

Parameters
TypeDirectionArgument NameDescription
voidN/A

It is stored in m_pAppHandles Returns

  • pZwTxQueue member of m_pAppHandles


ZAF_getZwCommandQueue#

SQueueNotifying * ZAF_getZwCommandQueue (void )

Get Notifying queue object used for ZW Command Queue.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • pZwCommandQueue member of m_pAppHandles


ZAF_getNetworkStatistics#

const zpal_radio_network_stats_t * ZAF_getNetworkStatistics (void )

Get Network Statistics object.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • pNetworkStatistics member of m_pAppHandles


ZAF_getPowerLock#

zpal_pm_handle_t ZAF_getPowerLock (void )

Get m_PowerLock object.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • m_PowerLock


ZAF_GetSecurityKeys#

uint8_t ZAF_GetSecurityKeys (void )

Returns the granted security keys.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Refer to ZW_security_api.h for the security key masks. Returns

  • 8 bit mask where a set bit indicates that a security key is granted.


ZAF_getCPHandle#

CP_Handle_t ZAF_getCPHandle (void )

Get Command Publisher handle Any other module can request the address of the CP context to use the API.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • Pointer to Command Publisher context


isFLiRS#

bool isFLiRS (const SAppNodeInfo_t * pAppNodeInfo)

Check if device is FLiRS based on device option mask.

Parameters
TypeDirectionArgument NameDescription
const SAppNodeInfo_t *N/ApAppNodeInfo

Returns

  • True or false, based on pAppNodeInfo


ZAF_GetInclusionState#

EInclusionState_t ZAF_GetInclusionState (void )

Returns the current inclusion state of the node.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • EInclusionState_t


ZAF_GetNodeID#

node_id_t ZAF_GetNodeID (void )

Returns the current ID of the node.

Parameters
TypeDirectionArgument NameDescription
voidN/A

If the node is not added to a network, the node ID is zero. Returns

  • Node ID


ZAF_GetHomeID#

uint32_t ZAF_GetHomeID (void )

Returns the current home ID.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • Home ID


ZAF_GetSucNodeId#

node_id_t ZAF_GetSucNodeId (void )

Returns the current Suc node ID.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • Suc Node ID


ZAF_GetInclusionMode#

EInclusionMode_t ZAF_GetInclusionMode (void )

Returns the current inclusion mode of the node, which indicates whether the node is acting as a Z-Wave or Z-Wave LR node.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • EInclusionMode_t


isRfRegionValid#

bool isRfRegionValid (zpal_radio_region_t region)

Checks if region is supported by Z-Wave stack.

Parameters
TypeDirectionArgument NameDescription
zpal_radio_region_tN/Aregion

Region to check

Returns

  • True if region is valid, false if it isn't.


ZAF_isLongRangeRegion#

bool ZAF_isLongRangeRegion (zpal_radio_region_t eRegion)

Check if eRegion is a Long Range region.

Parameters
TypeDirectionArgument NameDescription
zpal_radio_region_tN/AeRegion

Region to check

Warning: the function does not check that the region is supported by the zpal. Returns

  • True if the region support Long Range, False otherwise.


zaf_set_stay_awake_callback#

void zaf_set_stay_awake_callback (zaf_wake_up_callback_t callback)

Registers a wake up function to keep the node awake.

Parameters
TypeDirectionArgument NameDescription
zaf_wake_up_callback_tN/Acallback

Function to invoke to keep the node awake.

The function will be invoked on every reception of a frame to keep the node awake.


zaf_get_stay_awake_callback#

zaf_wake_up_callback_t zaf_get_stay_awake_callback (void )

Returns the wake up callback.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • Wake up callback