General

Basic APIs to set up and interact with the RAIL library.

Data Structures

struct RAIL_Version_t
Contains RAIL Library Version Information.

Typedefs

typedef void * RAIL_Handle_t
A handle of a RAIL instance, as returned from RAIL_Init() .
typedef void(* RAIL_InitCompleteCallbackPtr_t ) ( RAIL_Handle_t railHandle)
A pointer to init complete callback function.

Enumerations

enum RAIL_Status_t {
RAIL_STATUS_NO_ERROR ,
RAIL_STATUS_INVALID_PARAMETER ,
RAIL_STATUS_INVALID_STATE ,
RAIL_STATUS_INVALID_CALL ,
RAIL_STATUS_SUSPENDED
}
A status returned by many RAIL API calls indicating their success or failure.

Functions

void RAIL_GetVersion ( RAIL_Version_t *version, bool verbose)
Gets the version information for the compiled RAIL library.
RAIL_Handle_t RAIL_Init ( RAIL_Config_t *railCfg, RAIL_InitCompleteCallbackPtr_t cb)
Initializes RAIL.
uint16_t RAIL_GetRadioEntropy ( RAIL_Handle_t railHandle, uint8_t *buffer, uint16_t bytes)
Collects entropy from the radio if available.

Detailed Description

Basic APIs to set up and interact with the RAIL library.

Typedef Documentation

typedef void(* RAIL_InitCompleteCallbackPtr_t) ( RAIL_Handle_t railHandle)

A pointer to init complete callback function.

Parameters
[in] railHandle A handle for RAIL instance.
Returns
void.

Definition at line 697 of file rail_types.h .

Enumeration Type Documentation

A status returned by many RAIL API calls indicating their success or failure.

Enumerator
RAIL_STATUS_NO_ERROR

RAIL function reports no error.

RAIL_STATUS_INVALID_PARAMETER

Call to RAIL function threw an error because of an invalid parameter.

RAIL_STATUS_INVALID_STATE

Call to RAIL function threw an error because it was called during an invalid radio state.

RAIL_STATUS_INVALID_CALL

RAIL function is called in an invalid order.

RAIL_STATUS_SUSPENDED

RAIL function did not finish in the allotted time.

Definition at line 678 of file rail_types.h .

Function Documentation

uint16_t RAIL_GetRadioEntropy ( RAIL_Handle_t railHandle,
uint8_t * buffer,
uint16_t bytes
)

Collects entropy from the radio if available.

Parameters
[in] railHandle A RAIL instance handle.
[out] buffer The buffer to write the collected entropy.
[in] bytes The number of bytes to fill in in the input buffer.
Returns
Returns the number of bytes of entropy collected. For chips that don't support entropy collection, the function returns 0. Values less than the requested amount may also be returned on platforms that use entropy pools to collect random data periodically.

Attempts to fill the provided buffer with the requested number of bytes of entropy. If the requested number of bytes can't be provided, as many bytes as possible will be filled and returned. For chips that do not support this function, 0 bytes are always returned. For information about the specific mechanism for gathering entropy, see documentation for the chip family.

void RAIL_GetVersion ( RAIL_Version_t * version,
bool verbose
)

Gets the version information for the compiled RAIL library.

Parameters
[out] version A pointer to RAIL_Version_t structure to populate with version information.
[in] verbose Populate RAIL_Version_t struct with verbose information.
Returns
void.

The version information contains a major version number, a minor version number, and a rev (revision) number.

Initializes RAIL.

Parameters
[in,out] railCfg The configuration and state structure for setting up the library, which contains memory and other options needed by RAIL. This structure must be allocated in application global read-write memory. RAIL may modify fields within or referenced by this structure during its operation.
[in] cb A callback that notifies the application when the radio is finished initializing and is ready for further configuration. This callback is useful for potential transceiver products that require a power up sequence before further configuration is available. After the callback fires, the radio is ready for additional configuration before transmit and receive operations.
Returns
Handle for initialized rail instance or NULL if an invalid value was passed in the railCfg.