Zpal-radio#
Defines a platform abstraction layer for the Z-Wave radio.
The ZPAL Radio module contains several APIs which are required to be implemented.
A user of this radio module shall first define all parameters of the Z-Wave Radio Profile (i.e., zpal_radio_profile_t) and initialise the radio using zpal_radio_init API.
After the initialisation of the radio is executed, the user can use any of the radio APIs to execute radio related paradigm for instance
zpal_radio_transmit shall be used to transmit a Z-Wave frame on radio
zpal_radio_start_receive shall be used to enable the reception of Z-Wave frame
The radio API assumes that the radio will return to receive mode with channel hopping enabled after transmitting a frame.
Initialization of the radio#
void
RXHandlerFromISR(zpal_radio_event_t rxStatus)
{
// Rx handle in ISR context
}
void
TXHandlerFromISR(zpal_radio_event_t txEvent)
{
// Tx complete handle in ISR context
}
void
RegionChangeHandler(zpal_radio_event_t regionChangeStatus)
{
// Region changed, make sure region specific data and statistics are cleared
}
void
RadioAssertHandler(zpal_radio_event_t assertVal)
{
// Radio driver or hardware asserted, handle it
}
initialize_radio()
{
static zpal_radio_profile_t RfProfile;
static zpal_radio_network_stats_t sNetworkStatistic = {0};
static uint8_t network_homeid[4] = {0xDE, 0xAD, 0xBE, 0xEF};
// Set radio for US always on mode
static zpal_radio_profile_t RfProfile = {.region = REGION_US,
.wakeup = ZPAL_RADIO_WAKEUP_ALWAYS_LISTEN,
.listen_before_talk_threshold = ELISTENBEFORETALKTRESHOLD_DEFAULT,
.tx_power_max = 0,
.tx_power_adjust = 33,
.tx_power_max_lr = 140,
.home_id = &network_homeid,
.rx_cb = RXHandlerFromISR,
.tx_cb = TXHandlerFromISR,
.region_change_cb = RegionChangeHandler,
.assert_cb = RadioAssertHandler,
.network_stats = &sNetworkStatistic,
.radio_debug_enable = false,
.primary_lr_channel = ZPAL_RADIO_LR_CHANNEL_A};
zpal_radio_init(RfProfile);
}
Transmitting a frame#
#define TX_FAILED 0
#define TX_FRAME_SUCCESS 1
#define TX_BEAM_SUCCESS 2
static const zpal_radio_transmit_parameter_t TxParameter100kCh1 = {.speed = ZPAL_RADIO_SPEED_100K,
.channel_id = 0,
.crc = ZPAL_RADIO_CRC_16_BIT_CCITT,
.preamble = 0x55,
.preamble_length = 40,
.start_of_frame = 0xF0,
.repeats = 0};
zpal_status_t transmit_frame()
{
// Singlecast MAC header from node 1 to node 2
uint8_t header_buffer[9] = {0xDE, 0xAD, 0xBE, 0xEF, 0x01, 0x41, 0x01, 14, 0x02};
// Basic set On frame
uint8_t payload_buffer[3] = {0x20, 0x01, 0xFF};
return zpal_radio_transmit(&TxParameter100kCh1, // use 100kbps FSK profile
9,
(uint8_t *)&header_buffer,
3,
(uint8_t *)&payload_buffer,
true, // Do LBT before transmit
0); // Transmit power 0dBm
}
void
TXHandlerFromISR(zpal_radio_event_t txEvent)
{
uint8_t status;
if ((ZPAL_RADIO_EVENT_TX_FAIL == txEvent) || (ZPAL_RADIO_EVENT_TX_FAIL_LBT == txEvent))
{
status = TX_FAILED;
}
else if (txEvent & ZPAL_RADIO_EVENT_FLAG_BEAM)
{
status = TX_BEAM_SUCCESS;
}
else
{
status = TX_FRAME_SUCCESS;
}
/ Get out of ISR context and handle transmit complete
HandleTransmitComplete(status);
}
Receiving a frame#
#define RX_ABORT 0
#define RX_BEAM 1
#define RX_FRAME 2
#define RX_CALIBRATION_NEEDED 3
void
RXHandlerFromISR(zpal_radio_event_t rxStatus)
{
uint8_t status;
switch (rxStatus)
{
case ZPAL_RADIO_EVENT_RX_BEAM:
// Beam received
status = RX_BEAM;
break;
case ZPAL_RADIO_EVENT_RX_ABORT:
// Receive was aborted due to an error in the frame
status = RX_ABORT;
break;
case ZPAL_RADIO_EVENT_RX:
// Valid frame received
status = RX_FRAME;
break;
case ZPAL_RADIO_EVENT_RXTX_CALIBRATE:
// Radio reports that calibration is needed
status = RX_CALIBRATION_NEEDED;
break;
}
/ Get out of ISR context and handle frame
HandleFrame(status);
}
Modules#
zpal_radio_transmit_parameter_t
zpal_radio_rf_channel_statistic_t
Enumerations#
Wakeup interval for the radio.
Enumeration containing supported checksum types in Z-Wave.
Enumeration containing supported baud rates.
Enumeration containing Long Range Channels.
Enumeration containing Z-Wave channels.
Enumeration containing Z-Wave channels known as protocol modes.
List of LR channel configuration.
Enumeration official Z-Wave regions.
Enumeration containing Tx power settings.
Z-Wave Frame header format types.
Enumeratio radio events.
Typedefs#
Node ID type.
Parameter type to store deci dBm values.
Function pointer declaration for handling of received frames.
Functions#
Sets the home ID, the node ID and the radio mode.
Initializes the radio.
Function used to change region and Long Range mode at the same time.
Function for getting REGION runtime.
Function for transmitting a Z-Wave frame though the radio.
Function for transmitting a Z-Wave Beam frame though the radio.
Starts the receiver and enables reception of frames.
Function to get last received frame.
Powers down the radio transceiver.
Function to get the protocol mode used in the configured region.
Get last beam channel.
Get last beam RSSI.
Function for setting the LBT RSSI level.
Enable or disables reception of broadcast beam.
Function for clearing current Channel Transmit timers.
Function for clearing current Network statistics.
Function for clearing specified rf channel statistics.
Function for setting the zwavechannel used when calling zpal_radio_rf_channel_statistic_tx_frames, zpal_radio_rf_channel_statistic_tx_retries and zpal_radio_rf_channel_statistic_tx_lbt_failures.
Function for incrementing the rf channel tx frame statistic.
Function for incrementing the rf channel tx retries statistic.
Function for incrementing the rf channel tx lbt failures.
Function for updating the rf channel background noise rssi average statistic.
Function for updating the rf channel end device noise rssi average statistic.
Returns the background RSSI.
Function for getting the default tx power in deci dBm.
Function for getting the current reduce RF tx power compared to the default normal power in dBm.
Allows the radio to go into FLiRS receive mode.
Returns whether FLiRS mode is enabled in the radio.
Starts the receiver after power down.
Turn radio off without changing configuration.
Resets the radio configuration to receive mode after having received a beam.
Returns whether use of fragmented beams is enabled or not for the active region.
Calibrates the radio.
Returns whether listen before talk (LBT) is enabled.
Returns the time it takes to start transmission of wake up beams.
Returns the node ID associated with most recently received beam frame.
Returns the minimum transmit power for Z-Wave Long Range.
Returns the maximum transmit power for Z-Wave Long Range.
Returns whether debug is enabled or disabled.
a getter on the current rf profile.
Function to read current Long Range Channel Configuration.
Function to read current Primary Long Range Channel.
Function to set the Primary Long Range Channel.
Function to read current Long Range Channel selection mode.
Function to set the Long Range Channel selction mode.
Function to the set Long Range channel Locked status.
Function to read the Long Range channel Locked status.
Function to check if the stack implementation supports a given region.
Read the saved tx power of the last received long-range beam.
Check if transmission is allowed for specified channel.
Function to reduce Tx power of classic non-listening devices.
Return the maximum board supported tx power for classic z-wave.
Function to radio calibration.
Macros#
RSSI value is invalid or not measured.
Number of 2 channel regions.
Number of 3 channel regions.
Enumeration Documentation#
zpal_radio_mode_t#
zpal_radio_mode_t
Enumerator | |
---|---|
ZPAL_RADIO_MODE_NON_LISTENING | The radio is not listening unless configured to for a period. |
ZPAL_RADIO_MODE_ALWAYS_LISTENING | The radio is always listening. |
ZPAL_RADIO_MODE_FLIRS | The radio is frequently listening. |
230
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_wakeup_t#
zpal_radio_wakeup_t
Wakeup interval for the radio.
A FLiRS node will use 250 or 1000 ms interval, all other nodes should be configured as always listening.
Enumerator | |
---|---|
ZPAL_RADIO_WAKEUP_NEVER_LISTEN | Node is not listening (Only listen when application requests it). |
ZPAL_RADIO_WAKEUP_ALWAYS_LISTEN | Node is always listening. |
ZPAL_RADIO_WAKEUP_EVERY_250ms | Node wakes up every 250 ms interval to listen for a wakeup beam. |
ZPAL_RADIO_WAKEUP_EVERY_1000ms | Node wakes up every 1000 ms interval to listen for a wakeup beam. |
241
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_crc_t#
zpal_radio_crc_t
Enumeration containing supported checksum types in Z-Wave.
Enumerator | |
---|---|
ZPAL_RADIO_CRC_NONE | No checksum. |
ZPAL_RADIO_CRC_8_BIT_XOR | 8 bit XOR checksum. |
ZPAL_RADIO_CRC_16_BIT_CCITT | 16 bit CRC-CCITT checksum. |
252
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_speed_t#
zpal_radio_speed_t
Enumeration containing supported baud rates.
Enumerator | |
---|---|
ZPAL_RADIO_SPEED_UNDEFINED | |
ZPAL_RADIO_SPEED_9600 | |
ZPAL_RADIO_SPEED_40K | |
ZPAL_RADIO_SPEED_100K | |
ZPAL_RADIO_SPEED_100KLR |
262
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_lr_channel_t#
zpal_radio_lr_channel_t
Enumeration containing Long Range Channels.
Enumerator | |
---|---|
ZPAL_RADIO_LR_CHANNEL_UNINITIALIZED | Long Range Channel setting not initialized. |
ZPAL_RADIO_LR_CHANNEL_A | Long Range Channel A. |
ZPAL_RADIO_LR_CHANNEL_B | Long Range Channel B. |
ZPAL_RADIO_LR_CHANNEL_UNKNOWN | Long Range Channel Unknown. |
ZPAL_RADIO_LR_CHANNEL_AUTO | Long Range automatically selected Channel. |
274
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_zwave_channel_t#
zpal_radio_zwave_channel_t
Enumeration containing Z-Wave channels.
Enumerator | |
---|---|
ZPAL_RADIO_ZWAVE_CHANNEL_0 | Z-Wave channel 0. |
ZPAL_RADIO_ZWAVE_CHANNEL_1 | Z-Wave channel 1. |
ZPAL_RADIO_ZWAVE_CHANNEL_2 | Z-Wave channel 2. |
ZPAL_RADIO_ZWAVE_CHANNEL_3 | Z-Wave channel 3. |
ZPAL_RADIO_ZWAVE_CHANNEL_4 | Z-Wave channel 4. |
ZPAL_RADIO_ZWAVE_CHANNEL_NUM | Number of Z-Wave channels. must be last. |
ZPAL_RADIO_ZWAVE_CHANNEL_UNKNOWN | Z-Wave channel Unknown. |
287
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_protocol_mode_t#
zpal_radio_protocol_mode_t
Enumeration containing Z-Wave channels known as protocol modes.
Enumerator | |
---|---|
ZPAL_RADIO_PROTOCOL_MODE_1 | 2 Channel Protocol Mode. |
ZPAL_RADIO_PROTOCOL_MODE_2 | 3 Channel Protocol Mode. |
ZPAL_RADIO_PROTOCOL_MODE_3 | 4 Channel Protocol Mode - Combination of 2 Channel (9.6kb/40kb, 100kb) and Long Range Channel. |
ZPAL_RADIO_PROTOCOL_MODE_4 | 2 Long Range Channel Protocol Mode - End Device. |
ZPAL_RADIO_PROTOCOL_MODE_UNDEFINED | Protocol mode undefined means invalid region code. |
301
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_lr_channel_config_t#
zpal_radio_lr_channel_config_t
List of LR channel configuration.
Used to select the correct phy configuration.
Enumerator | |
---|---|
ZPAL_RADIO_LR_CH_CFG_NO_LR | used if region does not support Long range or end device included in classic network. |
ZPAL_RADIO_LR_CH_CFG1 | used by controller with primary channel A and not included end device Phy is configured to listen on classic Z-Wave channels and Long Range channel A. |
ZPAL_RADIO_LR_CH_CFG2 | used only by controller with primary channel B Phy is configured to listen on classic Z-Wave channels and Long Range channel B. |
ZPAL_RADIO_LR_CH_CFG3 | used only by end device when included in a LR network. |
ZPAL_RADIO_LR_CH_CFG_COUNT | enumeration items count |
314
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_region_t#
zpal_radio_region_t
Enumeration official Z-Wave regions.
Enumerator | |
---|---|
REGION_2CH_FIRST | First 2 channels region (with 3 data rates) |
REGION_EU | Radio is located in Region EU. 2 Channel region. |
REGION_US | Radio is located in Region US. 2 Channel region. |
REGION_ANZ | Radio is located in Region Australia/New Zealand. 2 Channel region. |
REGION_HK | Radio is located in Region Hong Kong. 2 Channel region. |
REGION_DEPRECATED_4 | Deprecated value, should never be used. |
REGION_IN | Radio is located in Region India. 2 Channel region. |
REGION_IL | Radio is located in Region Israel. 2 Channel region. |
REGION_RU | Radio is located in Region Russia. 2 Channel region. |
REGION_CN | Radio is located in Region China. 2 Channel region. |
REGION_US_LR | Radio is located in Region US. 2 Channel LR region. |
REGION_DEPRECATED_10 | Deprecated value, should never be used. |
REGION_EU_LR | Radio is located in Region EU. 2 Channel LR region. |
REGION_2CH_END | end of 2 channels regions (with 3 data rates) |
REGION_3CH_FIRST | First 3 channels region (with 1 data rate) |
REGION_JP | Radio is located in Region Japan. 3 Channel region. |
REGION_KR | Radio is located in Region Korea. 3 Channel region. |
REGION_3CH_END | end of 3 channels regions (with 1 data rate) |
REGION_DEPRECATED_48 | Deprecated value, should never be used. |
REGION_UNDEFINED | |
REGION_DEFAULT | Radio is located in Library Default Region EU. 2 Channel region. |
330
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_tx_power_t#
zpal_radio_tx_power_t
Enumeration containing Tx power settings.
Enumerator | |
---|---|
ZPAL_RADIO_TX_POWER_DEFAULT | Max Tx power. |
ZPAL_RADIO_TX_POWER_MINUS1_DBM | |
ZPAL_RADIO_TX_POWER_MINUS2_DBM | |
ZPAL_RADIO_TX_POWER_MINUS3_DBM | |
ZPAL_RADIO_TX_POWER_MINUS4_DBM | |
ZPAL_RADIO_TX_POWER_MINUS5_DBM | |
ZPAL_RADIO_TX_POWER_MINUS6_DBM | |
ZPAL_RADIO_TX_POWER_MINUS7_DBM | |
ZPAL_RADIO_TX_POWER_MINUS8_DBM | |
ZPAL_RADIO_TX_POWER_MINUS9_DBM | |
ZPAL_RADIO_TX_POWER_UNINITIALIZED | |
ZPAL_RADIO_TX_POWER_REDUCED | Default reduced Tx power. |
364
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_header_type_t#
zpal_radio_header_type_t
Z-Wave Frame header format types.
Enumerator | |
---|---|
ZPAL_RADIO_HEADER_TYPE_2CH | 2 Channel header format. |
ZPAL_RADIO_HEADER_TYPE_3CH | 3 Channel header format. |
ZPAL_RADIO_HEADER_TYPE_LR | LR Channel header format. |
ZPAL_RADIO_HEADER_TYPE_UNDEFINED | Undefined Channel header format. |
397
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_event_t#
zpal_radio_event_t
Enumeratio radio events.
Enumerator | |
---|---|
ZPAL_RADIO_EVENT_NONE | |
ZPAL_RADIO_EVENT_RX_COMPLETE | Frame received. |
ZPAL_RADIO_EVENT_TX_COMPLETE | Transmit complete. |
ZPAL_RADIO_EVENT_RX_BEAM_COMPLETE | Beam received. |
ZPAL_RADIO_EVENT_TX_BEAM_COMPLETE | Beam sent. |
ZPAL_RADIO_EVENT_RX_ABORT | Receive was aborted. |
ZPAL_RADIO_EVENT_TX_FAIL | Transmit failed. |
ZPAL_RADIO_EVENT_TX_FAIL_LBT | Transmit failed because of an LBT failure. |
ZPAL_RADIO_EVENT_RXTX_CALIBRATE | Radio needs calibration. |
ZPAL_RADIO_EVENT_MASK | |
ZPAL_RADIO_EVENT_FLAG_SUCCESS | Indicates a successful event. |
ZPAL_RADIO_EVENT_TX_TIMEOUT |
419
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_status_t#
zpal_radio_status_t
Enumerator | |
---|---|
ZPAL_RADIO_STATUS_IDLE | |
ZPAL_RADIO_STATUS_RX | |
ZPAL_RADIO_STATUS_TX | RX in progress. |
ZPAL_RADIO_STATUS_TX_BEAM | TX in progress. |
ZPAL_RADIO_STATUS_RX_BEAM | Beam TX in progress. |
435
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
Typedef Documentation#
node_id_t#
typedef uint16_t node_id_t
Node ID type.
223
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_tx_power_t#
typedef int16_t zpal_tx_power_t
Parameter type to store deci dBm values.
228
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_callback_t#
typedef void(* zpal_radio_callback_t) (const zpal_radio_event_t event) )(const zpal_radio_event_t event)
444
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_receive_handler_t#
typedef void(* zpal_radio_receive_handler_t) (zpal_radio_rx_parameters_t *rx_parameters, zpal_radio_receive_frame_t *frame) )(zpal_radio_rx_parameters_t *rx_parameters, zpal_radio_receive_frame_t *frame)
Function pointer declaration for handling of received frames.
[in] | rx_parameters | Pointer to the structure with channel and rssi values. |
[in] | frame | Pointer to the received frame. The frame is expected to be located in Z-Wave stack reserved memory and allocated throughout lifetime of stack processing. Application should copy payload data if required for unsynchronized data processing. |
When a frame is received this function will be invoked in order to process the frame.
467
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
Function Documentation#
zpal_radio_set_network_ids#
void zpal_radio_set_network_ids (uint32_t home_id, node_id_t node_id, zpal_radio_mode_t mode, uint8_t home_id_hash)
Sets the home ID, the node ID and the radio mode.
[in] | home_id | Network home ID. |
[in] | node_id | Network node ID. |
[in] | mode | Radio mode: listening, non-listening or FLiRS. |
[in] | home_id_hash | Radio mode: listening, non-listening or FLiRS. |
532
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_init#
void zpal_radio_init (zpal_radio_profile_t *const profile)
Initializes the radio.
[in] | profile | Pointer to the profile with information to configure the radio. |
539
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_change_region#
zpal_status_t zpal_radio_change_region (zpal_radio_region_t eRegion, zpal_radio_lr_channel_config_t eLrChCfg)
Function used to change region and Long Range mode at the same time.
[in] | eRegion | Region to change to. |
[in] | eLrChCfg | long range mode to change to (in case of no LR region, should be set to ZPAL_RADIO_LR_CH_CFG_NO_LR). |
Returns
ZPAL_STATUS_OK if the region was successfully changed and ZPAL_STATUS_FAIL otherwise.
548
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_region#
zpal_radio_region_t zpal_radio_get_region (void )
Function for getting REGION runtime.
N/A |
Returns
Current region.
555
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_transmit#
zpal_status_t zpal_radio_transmit (zpal_radio_transmit_parameter_t const *const tx_parameters, uint8_t frame_header_length, uint8_t const *const frame_header_buffer, uint8_t frame_payload_length, uint8_t const *const frame_payload_buffer, uint8_t use_lbt, zpal_radio_tx_power_t tx_power)
Function for transmitting a Z-Wave frame though the radio.
[in] | tx_parameters | Parameter setting specifying speed, channel, wakeup, crc for transmission. |
[in] | frame_header_length | Length of frame header data to transmit. |
[in] | frame_header_buffer | Pointer to data array containing the frame header. |
[in] | frame_payload_length | Length of frame payload data to transmit. |
[in] | frame_payload_buffer | Pointer to data array containing the frame payload. |
[in] | use_lbt | if set to 1, LBT will be done prior radioTransmit. |
[in] | tx_power | The RF tx power to use for transmitting in dBm. |
Returns
ZPAL_STATUS_OK if the data was successfully transmit, ZPAL_STATUS_BUFFER_FULL when queue is full.
569
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_transmit_beam#
zpal_status_t zpal_radio_transmit_beam (zpal_radio_transmit_parameter_t const *const tx_parameters, uint8_t beam_data_len, uint8_t const *const beam_data, int8_t tx_power)
Function for transmitting a Z-Wave Beam frame though the radio.
[in] | tx_parameters | Parameter setting specifying speed, channel, wakeup. |
[in] | beam_data_len | Length of the Beam data to transmit. |
[in] | beam_data | Pointer to data array containing the BEAM data. |
[in] | tx_power | The RF tx power to use for transmitting in dbm. |
Returns
ZPAL_STATUS_OK if the data was successfully transmit, ZPAL_STATUS_BUFFER_FULL when queue is full.
586
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_start_receive#
void zpal_radio_start_receive (void )
Starts the receiver and enables reception of frames.
N/A |
If the receiver is already started, nothing will happen.
595
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_last_received_frame#
void zpal_radio_get_last_received_frame (void )
Function to get last received frame.
N/A |
If a frame is received, zpal_radio_receive_handler_t will be invoked.
601
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_power_down#
void zpal_radio_power_down (void )
Powers down the radio transceiver.
N/A |
606
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_protocol_mode#
zpal_radio_protocol_mode_t zpal_radio_get_protocol_mode (void )
Function to get the protocol mode used in the configured region.
N/A |
Returns
Protocol mode used in the configured region.
613
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_last_beam_channel#
zpal_radio_zwave_channel_t zpal_radio_get_last_beam_channel (void )
Get last beam channel.
N/A |
Retrieve the channel on which we have last received a beam on.
Returns
Last beam channel.
621
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_last_beam_rssi#
int8_t zpal_radio_get_last_beam_rssi (void )
Get last beam RSSI.
N/A |
Retrieve the RSSI of the last beam received.
Returns
Last beam rssi.
629
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_set_lbt_level#
void zpal_radio_set_lbt_level (uint8_t channel, int8_t level)
Function for setting the LBT RSSI level.
[in] | channel | uint8_t channel to set LBT threshold for. |
[in] | level | int8_t LBT RSSI level in dBm. |
637
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_enable_rx_broadcast_beam#
void zpal_radio_enable_rx_broadcast_beam (bool enable)
Enable or disables reception of broadcast beam.
[in] | enable | true to enable FLiRS broadcast address, false to disable. |
Enable or disable FLiRS broadcast address.
645
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_clear_tx_timers#
void zpal_radio_clear_tx_timers (void )
Function for clearing current Channel Transmit timers.
N/A |
650
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_clear_network_stats#
void zpal_radio_clear_network_stats (void )
Function for clearing current Network statistics.
N/A |
655
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_rf_channel_statistic_clear#
void zpal_radio_rf_channel_statistic_clear (zpal_radio_zwave_channel_t zwavechannel)
Function for clearing specified rf channel statistics.
N/A | zwavechannel | rf channel for which statistics will be cleared. |
662
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_rf_channel_statistic_get#
bool zpal_radio_rf_channel_statistic_get (zpal_radio_zwave_channel_t zwavechannel, zpal_radio_rf_channel_statistic_t * p_radio_channel_statistic)
N/A | zwavechannel | zwave channel for which statistics will be returned. |
N/A | p_radio_channel_statistic | pointer to structure where statistics for specified zwave channel should be copied. |
Returns
true If delivered structure has been filled with current statistic for specified zwavechannel.
false If delivered structure has NOT been filled with any channel statistics.
672
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_rf_channel_statistic_tx_channel_set#
void zpal_radio_rf_channel_statistic_tx_channel_set (zpal_radio_zwave_channel_t zwavechannel)
Function for setting the zwavechannel used when calling zpal_radio_rf_channel_statistic_tx_frames, zpal_radio_rf_channel_statistic_tx_retries and zpal_radio_rf_channel_statistic_tx_lbt_failures.
N/A | zwavechannel | Z-Wave channel current rf channel statistic 'tx channel' should be set to. |
680
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_rf_channel_statistic_tx_frames#
void zpal_radio_rf_channel_statistic_tx_frames (void )
Function for incrementing the rf channel tx frame statistic.
N/A |
686
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_rf_channel_statistic_tx_retries#
void zpal_radio_rf_channel_statistic_tx_retries (void )
Function for incrementing the rf channel tx retries statistic.
N/A |
692
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_rf_channel_statistic_tx_lbt_failures#
void zpal_radio_rf_channel_statistic_tx_lbt_failures (void )
Function for incrementing the rf channel tx lbt failures.
N/A |
698
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_rf_channel_statistic_background_rssi_average_update#
void zpal_radio_rf_channel_statistic_background_rssi_average_update (zpal_radio_zwave_channel_t zwavechannel, int8_t rssi)
Function for updating the rf channel background noise rssi average statistic.
N/A | zwavechannel | Z-Wave channel on which background noise rssi average should be updated. |
N/A | rssi | rssi to add to sampleset used for calculating average background noise rssi on specified Z-Wave channel. |
706
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_rf_channel_statistic_end_device_rssi_average_update#
void zpal_radio_rf_channel_statistic_end_device_rssi_average_update (zpal_radio_zwave_channel_t zwavechannel, int8_t rssi)
Function for updating the rf channel end device noise rssi average statistic.
N/A | zwavechannel | Z-Wave channel on which end device noise rssi average should be updated. |
N/A | rssi | rssi to add to sampleset used for calculating average end device noise rssi on specified Z-Wave channel. |
714
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_background_rssi#
zpal_status_t zpal_radio_get_background_rssi (uint8_t channel, int8_t * rssi)
Returns the background RSSI.
[in] | channel | uint8_t channel Id for measurement. |
[out] | rssi | pointer to background RSSI. |
Returns
ZPAL_STATUS_OK if a valid RSSI value is available and read. ZPAL_STATUS_FAIL if an RSSI value cannot be read. The value of *rssi is invalid. ZPAL_STATUS_INVALID_ARGUMENT if rssi is NULL.
725
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_default_tx_power#
zpal_tx_power_t zpal_radio_get_default_tx_power (void )
Function for getting the default tx power in deci dBm.
N/A |
Returns
The default RF TX power in deci dBm
732
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_reduce_tx_power#
zpal_radio_tx_power_t zpal_radio_get_reduce_tx_power (void )
Function for getting the current reduce RF tx power compared to the default normal power in dBm.
N/A |
Returns
The current reduce RF TX power in dBm.
739
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_enable_flirs#
void zpal_radio_enable_flirs (void )
Allows the radio to go into FLiRS receive mode.
N/A |
744
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_is_flirs_enabled#
bool zpal_radio_is_flirs_enabled (void )
Returns whether FLiRS mode is enabled in the radio.
N/A |
Returns
True when FLiRS mode is enabled.
751
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_start_receive_after_power_down#
void zpal_radio_start_receive_after_power_down (bool wait_for_beam)
Starts the receiver after power down.
[in] | wait_for_beam | If set to true, the radio will listen for a beam. Otherwise, it will listen normally. |
759
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_abort#
void zpal_radio_abort (void )
Turn radio off without changing configuration.
N/A |
765
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_reset_after_beam_receive#
void zpal_radio_reset_after_beam_receive (bool start_receiver)
Resets the radio configuration to receive mode after having received a beam.
[in] | start_receiver | If set to true, the receiver will start listening. Otherwise, it will stay inactive. |
773
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_is_fragmented_beam_enabled#
bool zpal_radio_is_fragmented_beam_enabled (void )
Returns whether use of fragmented beams is enabled or not for the active region.
N/A |
Returns
True if use of fragmented beams is enabled, false otherwise.
780
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_calibrate#
void zpal_radio_calibrate (void )
Calibrates the radio.
N/A |
Z-Wave expects the radio ZPAL implementation to generate a ZPAL_RADIO_EVENT_RXTX_CALIBRATE event when calibration is required. The event will invoke this function in non-interrupt context.
787
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_is_lbt_enabled#
bool zpal_radio_is_lbt_enabled (void )
Returns whether listen before talk (LBT) is enabled.
N/A |
Returns
True if LBT is enabled, false otherwise.
794
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_beam_startup_time#
uint16_t zpal_radio_get_beam_startup_time (void )
Returns the time it takes to start transmission of wake up beams.
N/A |
Includes time spent on LBT.
Returns
startup time in milli seconds.
802
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_beam_node_id#
node_id_t zpal_radio_get_beam_node_id (void )
Returns the node ID associated with most recently received beam frame.
N/A |
Returns
Node ID associated with the most recently received beam frame.
809
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_minimum_lr_tx_power#
zpal_tx_power_t zpal_radio_get_minimum_lr_tx_power (void )
Returns the minimum transmit power for Z-Wave Long Range.
N/A |
Returns
Minimum TX power in dBm.
816
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_maximum_lr_tx_power#
zpal_tx_power_t zpal_radio_get_maximum_lr_tx_power (void )
Returns the maximum transmit power for Z-Wave Long Range.
N/A |
Returns
Maximum TX power in dBm.
823
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_is_debug_enabled#
bool zpal_radio_is_debug_enabled (void )
Returns whether debug is enabled or disabled.
N/A |
Returns
True if debug is enabled, false otherwise.
830
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_rf_profile#
const zpal_radio_profile_t * zpal_radio_get_rf_profile (void )
a getter on the current rf profile.
N/A |
Function return a pointer (instead of a struct) to reduce RAM memory usage and execution time. The pointer target a const structure because it should not be used to modify the content of the structure.
Returns
pointer on the current rf profile.
841
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_lr_channel_config#
zpal_radio_lr_channel_config_t zpal_radio_get_lr_channel_config (void )
Function to read current Long Range Channel Configuration.
N/A |
Returns
current long rang channel configuration (ZPAL_RADIO_LR_Ch_CFG if region without lr)
848
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_primary_long_range_channel#
zpal_radio_lr_channel_t zpal_radio_get_primary_long_range_channel (void )
Function to read current Primary Long Range Channel.
N/A |
Returns
855
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_set_primary_long_range_channel#
void zpal_radio_set_primary_long_range_channel (zpal_radio_lr_channel_t channel)
Function to set the Primary Long Range Channel.
[in] | channel | zpal_radio_lr_channel_t Long Range Channel to set as Primary Long Range Channel. |
863
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_long_range_channel_auto_mode#
bool zpal_radio_get_long_range_channel_auto_mode (void )
Function to read current Long Range Channel selection mode.
N/A |
Returns
true for automatically slected channel, false for manually selected channel
870
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_set_long_range_channel_auto_mode#
void zpal_radio_set_long_range_channel_auto_mode (bool enable)
Function to set the Long Range Channel selction mode.
[in] | enable | true to enable the automatically channel selection mode, false to enable the manual channel selection mode |
879
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_set_long_range_lock#
void zpal_radio_set_long_range_lock (bool lock)
Function to the set Long Range channel Locked status.
[in] | lock | Long Range channel Locked status. |
886
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_is_long_range_locked#
bool zpal_radio_is_long_range_locked (void )
Function to read the Long Range channel Locked status.
N/A |
Returns
True if node shall use Long Range channel only.
893
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_is_region_supported#
bool zpal_radio_is_region_supported (zpal_radio_region_t region)
Function to check if the stack implementation supports a given region.
[in] | region | Region to check |
Returns
True if the region is supported, False if it is not
902
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_flirs_beam_tx_power#
int8_t zpal_radio_get_flirs_beam_tx_power (void )
Read the saved tx power of the last received long-range beam.
N/A |
Returns
The tx power of the last received long-range beam.
909
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_is_transmit_allowed#
bool zpal_radio_is_transmit_allowed (uint8_t channel, uint8_t frame_length, uint8_t frame_priority)
Check if transmission is allowed for specified channel.
[in] | channel | The channel to check. |
[in] | frame_length | The length of the frame to send. |
[in] | frame_priority | The Tx priority of the frame. |
Returns
True if node shall use Long Range channel only.
Note
In Japan all communication must comply to a max 100ms transmit followed by min 100ms silence period.
Cause a channel shift.
923
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_attenuate#
bool zpal_radio_attenuate (uint8_t adjust_tx_power)
Function to reduce Tx power of classic non-listening devices.
[in] | adjust_tx_power | Reduces the devices default Tx power in dB. Valid range: 0-9 dB. |
Returns
True when reduction is allowed, false for listening devices and out of range input.
932
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_maximum_tx_power#
zpal_tx_power_t zpal_radio_get_maximum_tx_power (void )
Return the maximum board supported tx power for classic z-wave.
N/A |
Returns
The maximum board supported tx power in deci dBm.
939
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_request_calibration#
void zpal_radio_request_calibration (bool forced)
Function to radio calibration.
[in] | forced | If true, radio calibration is performed regardless if it is required. If false, radio calibration is performed only if it is required. |
947
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
Macro Definition Documentation#
ZPAL_RADIO_INVALID_RSSI_DBM#
#define ZPAL_RADIO_INVALID_RSSI_DBMValue:
(-128)
RSSI value is invalid or not measured.
200
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
ZPAL_RADIO_RSSI_NOT_AVAILABLE#
#define ZPAL_RADIO_RSSI_NOT_AVAILABLEValue:
(127)
201
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
ZW_TX_POWER_10DBM#
#define ZW_TX_POWER_10DBMValue:
100
204
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
ZW_TX_POWER_14DBM#
#define ZW_TX_POWER_14DBMValue:
140
205
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
ZW_TX_POWER_20DBM#
#define ZW_TX_POWER_20DBMValue:
200
206
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
REGION_2CH_NUM#
#define REGION_2CH_NUMValue:
= (REGION_2CH_END - REGION_2CH_FIRST)
Number of 2 channel regions.
358
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
REGION_3CH_NUM#
#define REGION_3CH_NUMValue:
= (REGION_3CH_END - REGION_3CH_FIRST)
Number of 3 channel regions.
359
of file /mnt/raid/workspaces/ws.6QOxxjIBR/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h