This example application demonstrates event handling and automatic state transitions in RAIL.
To get more information about this topic, read our related article.
Important
This application lacks error handling and other critical features for readability. It is intended solely for educational purposes and is not recommended as a foundation for development.
SiSDK 2024.06.00 and above
EFR32 Series 2
Connect two Development Kits to your PC.
Board ID | Description |
---|---|
BRD4182A | EFR32xG22 2.4 GHz 6 dBm Radio Board |
BRD4204D | EFR32ZG23 868-915 MHz 14 dBm Radio Board |
BRD4187C | EFR32xG24 Wireless 2.4 GHz +20 dBm Radio Board |
BRD4270B | EFR32FG25 902-928 MHz +16 dBm Radio Board |
BRD4401C | EFR32xG28 868/915 MHz 20 dBm + 2.4 GHz 10 dBm Radio Board |
- Generate Project with Simplicity Studio v5 or with SLC CLI.
- Adjust parameters detailed in the Configuration section below.
- Build and flash the project on two boards.
This example application demonstrates event handling and automatic state transitions in RAIL while transmitting and receiving a predefined packet. To use this application you need two nodes.
Before transmission, the transmitter increases the last byte of the payload to act as a counter of the transmitted packets.
The packet sent event and received events are indicated with LED0 on the boards. If an error occures during the transmission or reception of the packets, LED1 is used to indicate this.
SL_TUTORIAL_EVENT_HANDLING_PAYLOAD_LENGTH
is a variable used to define the payload length for transmission in the application. Its value should align with the payload length determined by the radio configuration when using a fixed-length configuration. Additionally, it must not exceed the value ofSL_TUTORIAL_EVENT_HANDLING_BUFFER_LENGTH
. The length of the Tx buffer should be set according to the radio configuration using this parameter. TheSL_TUTORIAL_EVENT_HANDLING_DEFAULT_CHANNEL
parameter determines the index of the channel that is used for packet transmission and reception (see available channels in the radio_settings.radioconf file of the project).
To initiate a packet transmission, you need to press the PB0 button. Note that the default Radio state in this application is Rx state. It goes back to this state after each Rx or Tx success/failure, so it is always capable of receiving from the other node, and this behavior is symmetric.
Additional project-specific configurations can be found in the
<project_root>/config/sl_rail_tutorial_event_handling_config.h
file. These
configurations are not currently accessible through the UI as component
settings, so you will need to modify them manually using a text editor or IDE.
Sets Payload length in bytes.
Sets Tx Buffer length in bytes.
Set the index of the default channel used to transmit and receive.
- Only configured channel index can be used (see available channels in the radio_settings.radioconf file of the project).