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.
Enumeration official Z-Wave regions.
Enumeration test frequency region.
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 for changing REGION runtime.
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.
Returns whether use of receive 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.
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.
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.
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. |
218
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
229
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
240
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 |
250
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
262
of file /mnt/raid/workspaces/ws.H9QSi59DS/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_UNKNOWN | Z-Wave channel Unknown. |
275
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
288
of file /mnt/raid/workspaces/ws.H9QSi59DS/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_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_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_US_LR_BACKUP | Radio is located in Region US. 2 Channel LR Backup region. |
REGION_2CH_NUM | Number of 2 channel region values. For checking if value is out of range. |
REGION_JP | Radio is located in Region Japan. 3 Channel region. |
REGION_KR | Radio is located in Region Korea. 3 Channel region. |
REGION_3CH_NUM | Number of 3 channel region values. For checking if value is out of range. |
REGION_US_LR_END_DEVICE | Radio is located in Region US Long Range End Device. 2 Long Range Channel Region. |
REGION_LR_END_DEVICE_NUM | |
REGION_UNDEFINED | |
REGION_DEFAULT | Radio is located in Library Default Region EU. 2 Channel region. |
300
of file /mnt/raid/workspaces/ws.H9QSi59DS/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_region_tf_t#
zpal_radio_region_tf_t
Enumeration test frequency region.
NOTE these regions should only be used for test purposes
Enumerator | |
---|---|
TF_REGION_866 | |
TF_REGION_870 | |
TF_REGION_906 | |
TF_REGION_910 | |
TF_REGION_878 | |
TF_REGION_882 | |
TF_REGION_886 | |
TF_REGION_2CH_NUM | |
TF_REGION_932_3CH | |
TF_REGION_940_3CH | |
TF_REGION_835_3CH | |
TF_REGION_840_3CH | |
TF_REGION_850_3CH | |
TF_REGION_3CH_NUM |
325
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
346
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
379
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 | |
ZPAL_RADIO_EVENT_RX_TIMEOUT | Indicates Rx event started but never completed after 10 secs. |
401
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
418
of file /mnt/raid/workspaces/ws.H9QSi59DS/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
Typedef Documentation#
node_id_t#
typedef uint16_t node_id_t
Node ID type.
211
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
216
of file /mnt/raid/workspaces/ws.H9QSi59DS/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_callback_t#
typedef void(* zpal_radio_callback_t) (zpal_radio_event_t event) )(zpal_radio_event_t event)
427
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
450
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
516
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
523
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 region)
Function for changing REGION runtime.
[in] | region | Region to change to. |
Returns
ZPAL_STATUS_OK if the region was successfully changed and ZPAL_STATUS_FAIL otherwise.
531
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
538
of file /mnt/raid/workspaces/ws.H9QSi59DS/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, int8_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.
552
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
569
of file /mnt/raid/workspaces/ws.H9QSi59DS/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_start_receive#
void zpal_radio_start_receive (bool force_rx)
Starts the receiver and enables reception of frames.
[in] | force_rx | bool will force RAIL to RX mode.. If the receiver is already started, nothing will happen. |
579
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
585
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 |
590
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
597
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
605
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
613
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
621
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
629
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 |
634
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 |
639
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
646
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
656
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
664
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 |
670
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 |
676
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 |
682
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
690
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
698
of file /mnt/raid/workspaces/ws.H9QSi59DS/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, bool force_rx, int8_t * rssi)
Returns the background RSSI.
[in] | channel | uint8_t channel Id for measurement. |
[in] | force_rx | bool will force RAIL to RX mode so RSSI can be measured. |
[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.
710
of file /mnt/raid/workspaces/ws.H9QSi59DS/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
717
of file /mnt/raid/workspaces/ws.H9QSi59DS/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_get_reduce_tx_power#
uint8_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.
724
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 |
729
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
736
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
744
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 |
750
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
758
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
765
of file /mnt/raid/workspaces/ws.H9QSi59DS/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_is_receive_beam_enabled#
bool zpal_radio_is_receive_beam_enabled (void )
Returns whether use of receive beams is enabled or not for the active region.
N/A |
Returns
True if use of fragmented beams is enabled, false otherwise.
772
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
779
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
786
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
794
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
801
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
808
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
815
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
822
of file /mnt/raid/workspaces/ws.H9QSi59DS/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
829
of file /mnt/raid/workspaces/ws.H9QSi59DS/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h
zpal_radio_set_primary_long_range_channel#
zpal_radio_region_t 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. |
Returns
Region needed for using the specified Primary Long Range Channel.
838
of file /mnt/raid/workspaces/ws.H9QSi59DS/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
845
of file /mnt/raid/workspaces/ws.H9QSi59DS/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 |
854
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
861
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
868
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
875
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
889
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
898
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.
905
of file /mnt/raid/workspaces/ws.H9QSi59DS/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. |
913
of file /mnt/raid/workspaces/ws.H9QSi59DS/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.H9QSi59DS/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.H9QSi59DS/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.H9QSi59DS/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.H9QSi59DS/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.H9QSi59DS/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_radio.h