nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches
Channel map filtering

Utility used to filter QoS information (per-channel CRC status) with the purpose of generating a suitable BLE channel map. More...

Data Structures

struct  chmap_filter_params
 Channel map filter parameters that can be changed at runtime. More...
 

Macros

#define CHMAP_WLAN_802_11GN_CENTER_FREQS    {12, 17, 22, 27, 32, 37, 42, 47, 52, 57, 62, 67}
 
#define CHMAP_WLAN_802_11GN_CENTER_FREQ_COUNT   12
 
#define CHMAP_WLAN_802_11GN_CHANNEL_WIDTH_MHz   20
 
#define CHMAP_BLE_CHANNEL_COUNT   37
 
#define CHMAP_BLE_BITMASK_SIZE   5
 
#define CHMAP_BLE_BITMASK_DEFAULT   {0xFF, 0xFF, 0xFF, 0xFF, 0x1F}
 
#define CHMAP_FILTER_INST_SIZE   580
 
#define CHMAP_FILTER_INST_ALIGN   4
 
#define CHMAP_PARAM_DYN_EVAL_TARGET   10
 
#define CHMAP_PARAM_DYN_BLOCK_INCREASE   2
 
#define DEFAULT_PARAM_MAINTENANCE_SAMPLE_COUNT   2000
 
#define DEFAULT_PARAM_INITIAL_RATING   0
 
#define DEFAULT_PARAM_BLE_MIN_CHANNEL_COUNT   4
 
#define DEFAULT_PARAM_BLE_WIFI_KEEPOUT_DURATION   2
 
#define DEFAULT_PARAM_EVAL_MAX_COUNT   1
 
#define DEFAULT_PARAM_EVAL_DURATION   5
 
#define DEFAULT_PARAM_EVAL_KEEPOUT_DURATION   300
 
#define DEFAULT_PARAM_DYN_DURATIONS   true
 
#define DEFAULT_PARAM_BLE_WEIGHT_CRC_OK   100 /* = 1.0 */
 
#define DEFAULT_PARAM_BLE_WEIGHT_CRC_ERROR   -100 /* = -1.0 */
 
#define DEFAULT_PARAM_BLE_RATING_TRIM   49 /* = 0.49 */
 
#define DEFAULT_PARAM_BLE_BLOCK_THRESHOLD   25 /* = 0.25 */
 
#define DEFAULT_PARAM_WIFI_RATING_INC   400 /* = 4.0 */
 
#define DEFAULT_PARAM_WIFI_PRESENT_THRESHOLD   90 /* = 0.9 */
 
#define DEFAULT_PARAM_WIFI_ACTIVE_THRESHOLD   75 /* = 0.75 */
 
#define DEFAULT_PARAM_WIFI_RATING_TRIM   50 /* = 0.5 */
 
#define DEFAULT_PARAM_EVAL_SUCCESS_THRESHOLD   85 /* = 0.85 */
 

Functions

const char * chmap_filter_version (void)
 Get library version number.
 
void chmap_filter_init (void)
 Initialize channel map filter library.
 
int chmap_filter_instance_init (struct chmap_instance *p_inst, size_t size)
 Initialize channel map filter instance.
 
void chmap_filter_crc_update (struct chmap_instance *p_inst, uint8_t ch_idx, uint16_t crc_ok, uint8_t crc_error)
 Update channel CRC information.
 
bool chmap_filter_process (struct chmap_instance *p_inst)
 Process channel map filter.
 
uint8_t * chmap_filter_suggested_map_get (struct chmap_instance *p_inst)
 Get suggested channel map.
 
void chmap_filter_suggested_map_confirm (struct chmap_instance *p_inst)
 Confirm that suggested channel map has been applied.
 
void chmap_filter_params_get (struct chmap_instance *p_inst, struct chmap_filter_params *p_params)
 Get dynamic parameters.
 
int chmap_filter_params_set (struct chmap_instance *p_inst, struct chmap_filter_params *p_params)
 Set dynamic parameters.
 
uint16_t chmap_filter_wifi_blacklist_get (void)
 Get bitmask of currently blacklisted wifi channels.
 
int chmap_filter_blacklist_set (struct chmap_instance *p_inst, uint16_t blacklist)
 Set wifi channels blacklist.
 
int chmap_filter_chn_info_get (struct chmap_instance *p_inst, uint8_t chn_idx, uint8_t *p_state, int16_t *p_rating, uint8_t *p_freq)
 Get BLE channel information.
 

Detailed Description

Utility used to filter QoS information (per-channel CRC status) with the purpose of generating a suitable BLE channel map.

Input to the library is CRC information. This information is used to assign ratings to each BLE channel. Single channels with poor ratings, or blocks of channels affected by wifi are removed from the channel map recommendation.

Note
The library is not thread-safe. Apart from the "get" functions, functions must not be called while chmap_filter_process is running