Z-Wave
Z-Wave configuration routines.
Data Structures |
|
struct | RAIL_ZWAVE_Config_t |
A configuration structure for Z-Wave in RAIL.
|
|
struct | RAIL_ZWAVE_LrAckData_t |
Configuration structure for Z-Wave Long Range ACK.
|
|
struct | RAIL_ZWAVE_BeamRxConfig_t |
Configuration structure for Z-Wave Beam Detection.
|
|
struct | RAIL_ZWAVE_RegionConfig_t |
Each Z-Wave region supports 3 channels.
|
Macros |
|
#define | RAIL_ZWAVE_OPTIONS_NONE 0U |
A value representing no options.
|
|
#define | RAIL_ZWAVE_OPTIONS_DEFAULT RAIL_ZWAVE_OPTIONS_NONE |
All options are disabled by default.
|
|
#define | RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE (1u << RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE_SHIFT) |
An option to configure promiscuous mode, accepting packets regardless of HomeId.
|
|
#define | RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES (1u << RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES_SHIFT) |
An option to configure Beam frame recognition.
|
|
#define | RAIL_ZWAVE_OPTION_NODE_ID_FILTERING (1u << RAIL_ZWAVE_OPTION_NODE_ID_FILTERING_SHIFT) |
An option to filter packets based on Node ID when not promiscuous.
|
|
#define | RAIL_ZWAVE_OPTIONS_ALL 0xFFFFFFFFU |
A value representing all options.
|
|
#define | RAIL_ZWAVE_FREQ_INVALID 0xFFFFFFFFUL |
Sentinel value to indicate that a channel (and thus its frequency) are invalid.
|
|
#define | RAIL_ZWAVE_LR_BEAM_TX_POWER_INVALID (0xFFU) |
Invalid Beam TX power value returned when
RAIL_ZWAVE_GetLrBeamTxPower
is called after receiving a regular non long range beam.
|
|
#define | RAIL_NUM_ZWAVE_CHANNELS (4U) |
Number of channels in each of Z-Wave's region-based PHYs.
|
Typedefs |
|
typedef RAIL_RxChannelHoppingParameter_t | RAIL_RxChannelHoppingParameters_t [(4U)] |
Rx channel hopping on-channel time for all Z-Wave channels in a region.
|
Functions |
|
RAIL_Status_t | RAIL_ZWAVE_ConfigRegion ( RAIL_Handle_t railHandle, const RAIL_ZWAVE_RegionConfig_t *regionCfg) |
Switch the Z-Wave region.
|
|
RAIL_Status_t | RAIL_ZWAVE_Init ( RAIL_Handle_t railHandle, const RAIL_ZWAVE_Config_t *config) |
Initialize RAIL for Z-Wave features.
|
|
RAIL_Status_t | RAIL_ZWAVE_Deinit ( RAIL_Handle_t railHandle) |
De-initialize Z-Wave hardware acceleration.
|
|
bool | RAIL_ZWAVE_IsEnabled ( RAIL_Handle_t railHandle) |
Return whether Z-Wave hardware acceleration is currently enabled.
|
|
RAIL_Status_t | RAIL_ZWAVE_ConfigOptions ( RAIL_Handle_t railHandle, RAIL_ZWAVE_Options_t mask, RAIL_ZWAVE_Options_t options) |
Configure Z-Wave options.
|
|
RAIL_Status_t | RAIL_ZWAVE_SetNodeId ( RAIL_Handle_t railHandle, RAIL_ZWAVE_NodeId_t nodeId) |
Inform RAIL of the Z-Wave node's NodeId for receive filtering.
|
|
RAIL_Status_t | RAIL_ZWAVE_SetHomeId ( RAIL_Handle_t railHandle, RAIL_ZWAVE_HomeId_t homeId, RAIL_ZWAVE_HomeIdHash_t homeIdHash) |
Inform RAIL of the Z-Wave node's HomeId and its hash for receive filtering.
|
|
RAIL_Status_t | RAIL_ZWAVE_GetBeamNodeId ( RAIL_Handle_t railHandle, RAIL_ZWAVE_NodeId_t *pNodeId) |
Get the NodeId of the most recently seen Beam frame that targeted this node.
|
|
RAIL_Status_t | RAIL_ZWAVE_GetBeamChannelIndex ( RAIL_Handle_t railHandle, uint8_t *pChannelIndex) |
Get the channel hopping index of the most recently seen beam frame that targeted this node.
|
|
RAIL_Status_t | RAIL_ZWAVE_GetLrBeamTxPower ( RAIL_Handle_t railHandle, uint8_t *pLrBeamTxPower) |
Get the TX power used to transmit the long range beam frame.
|
|
RAIL_Status_t | RAIL_ZWAVE_GetBeamRssi ( RAIL_Handle_t railHandle, int8_t *pBeamRssi) |
Get the RSSI of the received beam frame.
|
|
RAIL_Status_t | RAIL_ZWAVE_SetTxLowPower ( RAIL_Handle_t railHandle, uint8_t powerLevel) |
Set the Raw Low Power settings.
|
|
RAIL_Status_t | RAIL_ZWAVE_SetTxLowPowerDbm ( RAIL_Handle_t railHandle, RAIL_TxPower_t powerLevel) |
Set the Low Power settings in dBm.
|
|
RAIL_TxPowerLevel_t | RAIL_ZWAVE_GetTxLowPower ( RAIL_Handle_t railHandle) |
Get the TX low power in raw units (see
rail_chip_specific.h
for value ranges).
|
|
RAIL_TxPower_t | RAIL_ZWAVE_GetTxLowPowerDbm ( RAIL_Handle_t railHandle) |
Get the TX low power in terms of deci-dBm instead of raw power level.
|
|
RAIL_Status_t | RAIL_ZWAVE_ReceiveBeam ( RAIL_Handle_t railHandle, uint8_t *beamDetectIndex, const RAIL_SchedulerInfo_t *schedulerInfo) |
Implement beam detection and reception algorithms.
|
|
RAIL_Status_t | RAIL_ZWAVE_ConfigBeamRx ( RAIL_Handle_t railHandle, RAIL_ZWAVE_BeamRxConfig_t *config) |
Configure the receive algorithm used in
RAIL_ZWAVE_ReceiveBeam
.
|
|
RAIL_Status_t | RAIL_ZWAVE_SetDefaultRxBeamConfig ( RAIL_Handle_t railHandle) |
Set the default RX beam configuration.
|
|
RAIL_Status_t | RAIL_ZWAVE_GetRxBeamConfig ( RAIL_ZWAVE_BeamRxConfig_t *pConfig) |
Get the current RX beam configuration.
|
|
RAIL_Status_t | RAIL_ZWAVE_ConfigRxChannelHopping ( RAIL_Handle_t railHandle, RAIL_RxChannelHoppingConfig_t *config) |
Configure the channel hop timings for use in Z-Wave RX channel hop configuration.
|
|
RAIL_ZWAVE_RegionId_t | RAIL_ZWAVE_GetRegion ( RAIL_Handle_t railHandle) |
Get the Z-Wave region.
|
|
RAIL_Status_t | RAIL_ZWAVE_SetLrAckData ( RAIL_Handle_t railHandle, const RAIL_ZWAVE_LrAckData_t *pLrAckData) |
Write the AutoACK FIFO for the next outgoing Z-Wave Long Range ACK.
|
Detailed Description
Z-Wave configuration routines.
The functions in this group configure RAIL Z-Wave hardware acceleration features.
To configure Z-Wave functionality, the application must first set up a RAIL instance with RAIL_Init() and other setup functions.
Macro Definition Documentation
◆ RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES
#define RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES (1u << RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES_SHIFT) |
An option to configure Beam frame recognition.
Defaults to false. When true, Beam frames that are broadcast or match the NodeId and HomeIdHash values will trigger RAIL_EVENT_ZWAVE_BEAM event, in addition to RAIL_EVENT_RX_PACKET_ABORTED which occurs for every received Beam frame.
- Note
- This option takes precedence over RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE when receiving a beam frame. If this option is false, beam frames are not considered special and will be received as if they were normal Z-Wave frames, assuredly triggering RAIL_EVENT_RX_FRAME_ERROR .
Definition at line
138
of file
rail_zwave.h
.
◆ RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE
#define RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE (1u << RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE_SHIFT) |
An option to configure promiscuous mode, accepting packets regardless of HomeId.
Defaults to false, filtering packets based on the HomeId. When true, such filtering is disabled.
Definition at line
123
of file
rail_zwave.h
.
◆ RAIL_ZWAVE_OPTIONS_DEFAULT
#define RAIL_ZWAVE_OPTIONS_DEFAULT RAIL_ZWAVE_OPTIONS_NONE |
All options are disabled by default.
Definition at line
116
of file
rail_zwave.h
.
Enumeration Type Documentation
◆ RAIL_ZWAVE_Baud_t
enum RAIL_ZWAVE_Baud_t |
Z-Wave supported baudrates or PHYs.
Definition at line
257
of file
rail_zwave.h
.
◆ RAIL_ZWAVE_HomeId_t
enum RAIL_ZWAVE_HomeId_t |
◆ RAIL_ZWAVE_HomeIdHash_t
A Z-Wave Home Id hash.
- Note
- Certain values (as shown) are illegal.
Definition at line
213
of file
rail_zwave.h
.
◆ RAIL_ZWAVE_NodeId_t
enum RAIL_ZWAVE_NodeId_t |
A Z-Wave Node Id.
This data type is 12 bits wide when using the ZWave Long Range PHY, and 8 bits wide otherwise.
- Note
- When using the Long Range PHY, values 0xFA1..0xFFE are reserved. Otherwise, values 0xE9..0xFE are reserved.
Definition at line
160
of file
rail_zwave.h
.
◆ RAIL_ZWAVE_Options_t
enum RAIL_ZWAVE_Options_t |
Z-Wave options.
Enumerator | |
---|---|
RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE_SHIFT |
Shift position of RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE bit. |
RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES_SHIFT |
Shift position of RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES bit. |
RAIL_ZWAVE_OPTION_NODE_ID_FILTERING_SHIFT |
Shift position of RAIL_ZWAVE_OPTION_NODE_ID_FILTERING bit. |
Definition at line
99
of file
rail_zwave.h
.
◆ RAIL_ZWAVE_RegionId_t
Z-Wave region identifications.
Definition at line
286
of file
rail_zwave.h
.
Function Documentation
◆ RAIL_ZWAVE_ConfigBeamRx()
RAIL_Status_t RAIL_ZWAVE_ConfigBeamRx | ( | RAIL_Handle_t |
railHandle,
|
RAIL_ZWAVE_BeamRxConfig_t * |
config
|
||
) |
Configure the receive algorithm used in RAIL_ZWAVE_ReceiveBeam .
This function should not be used without direct instruction by Silicon Labs.
- Parameters
-
[in] railHandle
A RAIL instance handle. [in] config
Configuration for beam detection algorithm.
- Returns
- Status code indicating success of the function call.
◆ RAIL_ZWAVE_ConfigOptions()
RAIL_Status_t RAIL_ZWAVE_ConfigOptions | ( | RAIL_Handle_t |
railHandle,
|
RAIL_ZWAVE_Options_t |
mask,
|
||
RAIL_ZWAVE_Options_t |
options
|
||
) |
Configure Z-Wave options.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [in] mask
A bitmask containing which options should be modified. [in] options
A bitmask containing desired configuration settings. Bit positions for each option are found in the RAIL_ZWAVE_Options_t .
- Returns
- Status code indicating success of the function call.
◆ RAIL_ZWAVE_ConfigRegion()
RAIL_Status_t RAIL_ZWAVE_ConfigRegion | ( | RAIL_Handle_t |
railHandle,
|
const RAIL_ZWAVE_RegionConfig_t * |
regionCfg
|
||
) |
Switch the Z-Wave region.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [in] regionCfg
Z-Wave channel configuration for the selected region
- Returns
- Status code indicating success of the function call.
- Note
- Setting a new Z-Wave Region will default any Low Power values to Normal Power values for the region. Z-Wave Region configuration must always be followed by a Low Power setup in case one desires to have the Low Power ACKing functionality.
◆ RAIL_ZWAVE_ConfigRxChannelHopping()
RAIL_Status_t RAIL_ZWAVE_ConfigRxChannelHopping | ( | RAIL_Handle_t |
railHandle,
|
RAIL_RxChannelHoppingConfig_t * |
config
|
||
) |
Configure the channel hop timings for use in Z-Wave RX channel hop configuration.
This function should not be used without direct instruction by Silicon Labs.
- Parameters
-
[in] railHandle
A RAIL instance handle. [in,out] config
Configuration for Z-Wave RX channel hopping. This structure must be allocated in application global read-write memory. RAIL will populate fields within or referenced by this structure during its operation. Be sure to allocate RAIL_RxChannelHoppingConfigEntry_t entries[] for RAIL_NUM_ZWAVE_CHANNELS . Be sure to set RAIL_RxChannelHoppingConfig_t::numberOfChannels to the desired number of channels.
- Returns
- Status code indicating success of the function call.
- Note
- : This API must be called before RAIL_EnableRxChannelHopping() . This API must never be called while the radio is on with RX Duty Cycle or Channel Hopping enabled.
◆ RAIL_ZWAVE_Deinit()
RAIL_Status_t RAIL_ZWAVE_Deinit | ( | RAIL_Handle_t |
railHandle
|
) |
De-initialize Z-Wave hardware acceleration.
- Parameters
-
[in] railHandle
A handle of RAIL instance.
- Returns
- A status code indicating success of the function call.
Disables and resets all Z-Wave hardware acceleration features. This function should only be called when the radio is IDLE.
◆ RAIL_ZWAVE_GetBeamChannelIndex()
RAIL_Status_t RAIL_ZWAVE_GetBeamChannelIndex | ( | RAIL_Handle_t |
railHandle,
|
uint8_t * |
pChannelIndex
|
||
) |
Get the channel hopping index of the most recently seen beam frame that targeted this node.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [out] pChannelIndex
A pointer to a uint8_t to populate with the channel hopping index. If channel-hopping was off at the time the beam packet was received, RAIL_CHANNEL_HOPPING_INVALID_INDEX is provided.
- Returns
- Status code indicating success of the function call.
- Note
- This is best called while handling the RAIL_EVENT_ZWAVE_BEAM event; if multiple beams are received only the most recent beam's channel hopping index is provided.
◆ RAIL_ZWAVE_GetBeamNodeId()
RAIL_Status_t RAIL_ZWAVE_GetBeamNodeId | ( | RAIL_Handle_t |
railHandle,
|
RAIL_ZWAVE_NodeId_t * |
pNodeId
|
||
) |
Get the NodeId of the most recently seen Beam frame that targeted this node.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [out] pNodeId
A pointer to RAIL_ZWAVE_NodeId_t to populate.
- Returns
- Status code indicating success of the function call.
- Note
- This is best called while handling the RAIL_EVENT_ZWAVE_BEAM event; if multiple beams are received only the most recent beam's NodeId is provided.
◆ RAIL_ZWAVE_GetBeamRssi()
RAIL_Status_t RAIL_ZWAVE_GetBeamRssi | ( | RAIL_Handle_t |
railHandle,
|
int8_t * |
pBeamRssi
|
||
) |
Get the RSSI of the received beam frame.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [out] pBeamRssi
An application provided pointer to a int8_t to be populated with the latest beam's RSSI, in dBm.
- Returns
- Status code indicating success of the function call. This function will return RAIL_STATUS_INVALID_STATE if called without ever having received a beam.
- Note
- This is best called while handling the RAIL_EVENT_ZWAVE_BEAM event; if multiple beams are received only the most recent beam's RSSI is provided.
◆ RAIL_ZWAVE_GetLrBeamTxPower()
RAIL_Status_t RAIL_ZWAVE_GetLrBeamTxPower | ( | RAIL_Handle_t |
railHandle,
|
uint8_t * |
pLrBeamTxPower
|
||
) |
Get the TX power used to transmit the long range beam frame.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [out] pLrBeamTxPower
An application provided pointer to a uint8_t to be populated with the TX power of the latest long range beam. This will be set to RAIL_ZWAVE_LR_BEAM_TX_POWER_INVALID if this API is called after receiving a regular non long range beam.
- Returns
- Status code indicating success of the function call. This function will return RAIL_STATUS_INVALID_STATE if called after receiving a regular non long range beam.
- Note
- This is best called while handling the RAIL_EVENT_ZWAVE_BEAM event; if multiple beams are received only the most recent long range beam's TX power is provided.
- The following table shows long range beam TX power value to dBm value mapping:
Tx Power Value | Description |
---|---|
0 | -6dBm |
1 | -2dBm |
2 | +2dBm |
3 | +6dBm |
4 | +10dBm |
5 | +13dBm |
6 | +16dBm |
7 | +19dBm |
8 | +21dBm |
9 | +23Bm |
10 | +25dBm |
11 | +26dBm |
12 | +27dBm |
13 | +28dBm |
14 | +29dBm |
15 | +30dBm |
◆ RAIL_ZWAVE_GetRegion()
RAIL_ZWAVE_RegionId_t RAIL_ZWAVE_GetRegion | ( | RAIL_Handle_t |
railHandle
|
) |
Get the Z-Wave region.
- Parameters
-
[in] railHandle
A RAIL instance handle.
- Returns
- The RAIL_ZWAVE_RegionId_t value
- Note
- : RAIL_ZWAVE_ConfigRegion must have been called successfully before this function is called. Otherwise, RAIL_ZWAVE_REGIONID_UNKNOWN is returned.
◆ RAIL_ZWAVE_GetRxBeamConfig()
RAIL_Status_t RAIL_ZWAVE_GetRxBeamConfig | ( | RAIL_ZWAVE_BeamRxConfig_t * |
pConfig
|
) |
Get the current RX beam configuration.
- Parameters
-
[out] pConfig
A pointer to RAIL_ZWAVE_BeamRxConfig_t to be populated with the current beam configuration.
- Returns
- A status code indicating success of the function call.
◆ RAIL_ZWAVE_GetTxLowPower()
RAIL_TxPowerLevel_t RAIL_ZWAVE_GetTxLowPower | ( | RAIL_Handle_t |
railHandle
|
) |
Get the TX low power in raw units (see
rail_chip_specific.h
for value ranges).
- Parameters
-
[in] railHandle
A RAIL instance handle.
- Returns
- The chip-specific RAIL_TxPowerLevel_t raw value of the low transmit power.
This API returns the low raw power value that was set by RAIL_ZWAVE_SetTxLowPower .
Calling this function before configuring the Low Power PA (i.e., before a successful call to RAIL_ZWAVE_SetTxLowPowerDbm or RAIL_ZWAVE_SetTxLowPower ) will return the low power value same as the nominal power. Also, calling this function before configuring the PA (i.e., before a successful call to RAIL_ConfigTxPower ) will return an error (RAIL_TX_POWER_LEVEL_INVALID).
◆ RAIL_ZWAVE_GetTxLowPowerDbm()
RAIL_TxPower_t RAIL_ZWAVE_GetTxLowPowerDbm | ( | RAIL_Handle_t |
railHandle
|
) |
Get the TX low power in terms of deci-dBm instead of raw power level.
- Parameters
-
[in] railHandle
A RAIL instance handle.
- Returns
- The chip-specific RAIL_TxPower_t value of the low transmit power in deci-dBm.
◆ RAIL_ZWAVE_Init()
RAIL_Status_t RAIL_ZWAVE_Init | ( | RAIL_Handle_t |
railHandle,
|
const RAIL_ZWAVE_Config_t * |
config
|
||
) |
Initialize RAIL for Z-Wave features.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [in] config
A Z-Wave configuration structure.
- Returns
- A status code indicating success of the function call.
This function is the entry point for working with Z-Wave within RAIL. It sets up relevant hardware acceleration for Z-Wave-specific features, such as HomeId filtering and beam packets (as specified in the configuration) and allows users to select the relevant Z-Wave region-specific PHY via RAIL_ZWAVE_ConfigRegion .
◆ RAIL_ZWAVE_IsEnabled()
bool RAIL_ZWAVE_IsEnabled | ( | RAIL_Handle_t |
railHandle
|
) |
Return whether Z-Wave hardware acceleration is currently enabled.
- Parameters
-
[in] railHandle
A handle of RAIL instance.
- Returns
- True if Z-Wave hardware acceleration was enabled to start with and false otherwise.
◆ RAIL_ZWAVE_ReceiveBeam()
RAIL_Status_t RAIL_ZWAVE_ReceiveBeam | ( | RAIL_Handle_t |
railHandle,
|
uint8_t * |
beamDetectIndex,
|
||
const RAIL_SchedulerInfo_t * |
schedulerInfo
|
||
) |
Implement beam detection and reception algorithms.
It will take care of all configuration and radio setup to detect and receive beams in the current Z-Wave region. If a beam is detected, RAIL will provide the usual RAIL_EVENT_ZWAVE_BEAM event during which time users can process the beam as expected. However, normal packets may also be received during this time (also triggering RAIL_EVENTS_RX_COMPLETION events), in which case, this API may need to be re-called to receive a beam. Users should also listen for RAIL_EVENT_RX_CHANNEL_HOPPING_COMPLETE , which will indicate that no beam is heard. At that point, the radio will be automatically idled. Until one of these events is received, users should not try to reconfigure radio settings or start another radio operation. If an application needs to do some other operation or configuration, it must first call RAIL_Idle and wait for the radio to idle.
- Note
- : The radio must be idle before calling this function.
- : RAIL_ConfigRxChannelHopping must have been called successfully in Z-Wave before this function is called to provide a valid memory buffer for internal use (see RAIL_RxChannelHoppingConfig_t::buffer ).
- : This function alters radio functionality substantially. After calling it, the user should call RAIL_ZWAVE_ConfigRegion , RAIL_ConfigRxChannelHopping , RAIL_EnableRxChannelHopping , and RAIL_SetRxTransitions to reset these parameters to whatever behaviors were desired before calling this function. Additionally, this function will idle the radio upon on exit.
- Parameters
-
[in] railHandle
A RAIL instance handle. [out] beamDetectIndex
Indicator of whether or not a beam was detected at all, regardless of if it was received, generally for use only by instruction from Silicon Labs. Can be NULL. [out] schedulerInfo
While Z-Wave is currently not supported in RAIL Multiprotocol, this scheduler info is added to future proof against any future version of multiprotocol which may support it. For now, this argument can be NULL.
- Returns
- status indicating whether or not the radio was able to configure beam packet detection/reception. Reasons for failure include an un-idled radio or a non Japan or Korea region configured before calling this function.
◆ RAIL_ZWAVE_SetDefaultRxBeamConfig()
RAIL_Status_t RAIL_ZWAVE_SetDefaultRxBeamConfig | ( | RAIL_Handle_t |
railHandle
|
) |
Set the default RX beam configuration.
- Parameters
-
[in] railHandle
A RAIL instance handle.
- Returns
- Status code indicating success of the function call.
- Note
- This function resets any changes made to the beam configuration via RAIL_ZWAVE_ConfigBeamRx and the default beam configuration will be in effect on subsequent call(s) to RAIL_ZWAVE_ReceiveBeam .
◆ RAIL_ZWAVE_SetHomeId()
RAIL_Status_t RAIL_ZWAVE_SetHomeId | ( | RAIL_Handle_t |
railHandle,
|
RAIL_ZWAVE_HomeId_t |
homeId,
|
||
RAIL_ZWAVE_HomeIdHash_t |
homeIdHash
|
||
) |
Inform RAIL of the Z-Wave node's HomeId and its hash for receive filtering.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [in] homeId
A Z-Wave Home ID. [in] homeIdHash
The hash of the Home Id expected in Beam frames. If this is RAIL_ZWAVE_HOME_ID_HASH_DONT_CARE , Beam frame detection will not check the HomeIdHash in a received Beam frame at all, and RAIL_EVENT_ZWAVE_BEAM will trigger based solely on the nodeId in the Beam frame.
- Returns
- Status code indicating success of the function call.
- Note
- Until this API is called, RAIL will assume the HomeId is an illegal one of RAIL_ZWAVE_HOME_ID_DEFAULT , and its hash is RAIL_ZWAVE_HOME_ID_HASH_DONT_CARE .
◆ RAIL_ZWAVE_SetLrAckData()
RAIL_Status_t RAIL_ZWAVE_SetLrAckData | ( | RAIL_Handle_t |
railHandle,
|
const RAIL_ZWAVE_LrAckData_t * |
pLrAckData
|
||
) |
Write the AutoACK FIFO for the next outgoing Z-Wave Long Range ACK.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [in] pLrAckData
An application provided pointer to a const RAIL_ZWAVE_LrAckData_t to populate the noise floor, TX power and receive rssi bytes of the outgoing Z-Wave Long Range ACK packet.
- Returns
- A status code indicating success of the function call.
This function sets the AutoACK data to use in acknowledging the frame being received. It must only be called while processing the RAIL_EVENT_ZWAVE_LR_ACK_REQUEST_COMMAND . This will return RAIL_STATUS_INVALID_STATE if it is too late to write the outgoing ACK. When successful, the ackData will only be sent once. Subsequent packets needing an Z-Wave Long Range ACK will each need to call this function to write the ACK information.
◆ RAIL_ZWAVE_SetNodeId()
RAIL_Status_t RAIL_ZWAVE_SetNodeId | ( | RAIL_Handle_t |
railHandle,
|
RAIL_ZWAVE_NodeId_t |
nodeId
|
||
) |
Inform RAIL of the Z-Wave node's NodeId for receive filtering.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [in] nodeId
A Z-Wave Node ID.
- Returns
- Status code indicating success of the function call.
- Note
- Until this API is called, RAIL will assume the NodeId is RAIL_ZWAVE_NODE_ID_DEFAULT .
◆ RAIL_ZWAVE_SetTxLowPower()
RAIL_Status_t RAIL_ZWAVE_SetTxLowPower | ( | RAIL_Handle_t |
railHandle,
|
uint8_t |
powerLevel
|
||
) |
Set the Raw Low Power settings.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [in] powerLevel
Desired low power raw level.
- Returns
- Status code indicating success of the function call.
Low Power settings are required during ACK transmissions when the Low Power Bit is set. This setting is only valid for one subsequent transmission, after which all transmissions will be at the nominal power setting, until re-invoked.
◆ RAIL_ZWAVE_SetTxLowPowerDbm()
RAIL_Status_t RAIL_ZWAVE_SetTxLowPowerDbm | ( | RAIL_Handle_t |
railHandle,
|
RAIL_TxPower_t |
powerLevel
|
||
) |
Set the Low Power settings in dBm.
- Parameters
-
[in] railHandle
A handle of RAIL instance. [in] powerLevel
Desired low power level dBm.
- Returns
- Status code indicating success of the function call.
Low Power settings are required during ACK transmissions when the Low Power Bit is set. This setting is only valid for one subsequent transmission, after which all transmissions will be at the nominal power setting, until re-invoked.