Skip to content

feat RF channel

Romain Jacob edited this page Mar 14, 2019 · 2 revisions

Objective

Describe the channel setting feature in Baloo.

Description

Baloo provides the user with a direct interface to select the radio frequency channel (often called RF channel).

The user can select a desired channel (among those supported by the platorm) which is set at initialization. A dedicated function allows to modify this setting at any time during execution.

This feature is always active.

Availability

Available for all supported platforms.

Compatibility

Compatible with all the features and communication primitives.

Using the feature

The user can select the desired RF channel using the following macro (typically in project-conf.h)

#define GMW_CONF_RF_TX_CHANNEL 

The admissible values for this macro are listed in a enum in the platform configuration file (gmw-conf-<platform>.h). Below is the list for the sky mote as an example:

typedef enum
{
  GMW_RF_TX_CHANNEL_2405_MHz = 11,
  GMW_RF_TX_CHANNEL_2410_MHz = 12,
  GMW_RF_TX_CHANNEL_2415_MHz = 13,
  GMW_RF_TX_CHANNEL_2420_MHz = 14,
  GMW_RF_TX_CHANNEL_2425_MHz = 15,
  GMW_RF_TX_CHANNEL_2430_MHz = 16,
  GMW_RF_TX_CHANNEL_2435_MHz = 17,
  GMW_RF_TX_CHANNEL_2440_MHz = 18,
  GMW_RF_TX_CHANNEL_2445_MHz = 19,
  GMW_RF_TX_CHANNEL_2450_MHz = 20,
  GMW_RF_TX_CHANNEL_2455_MHz = 21,
  GMW_RF_TX_CHANNEL_2460_MHz = 22,
  GMW_RF_TX_CHANNEL_2465_MHz = 23,
  GMW_RF_TX_CHANNEL_2470_MHz = 24,
  GMW_RF_TX_CHANNEL_2475_MHz = 25,
  GMW_RF_TX_CHANNEL_2480_MHz = 26
} gmw_rf_tx_channel_t;

The user can modify the RF channel setting at run time using the gmw_set_rf_channel() function (see gmw-platform.h). This allows the NET layer to implement a channel hopping scheme at the slot level (i.e., the netwrok hops channel between successive slots).

Example

The baloo-crystal application (see \examples) provides an example use this feature: for each communication round and pair of slots, the network hops through a predifined list of channels based on a static function (see get_channel_epoch()).