Loading...
Searching...
No Matches

Connection allocation and maintenance for NimBLE netif. More...

Detailed Description

Connection allocation and maintenance for NimBLE netif.

Author
Hauke Petersen hauke.nosp@m..pet.nosp@m.ersen.nosp@m.@fu-.nosp@m.berli.nosp@m.n.de

Definition in file nimble_netif_conn.h.

#include <stdint.h>
#include <stdbool.h>
#include "nimble_netif.h"
+ Include dependency graph for nimble_netif_conn.h:

Go to the source code of this file.

Data Structures

struct  nimble_netif_conn_t
 Memory layout for holding the relevant connection information. More...
 

Macros

#define NIMBLE_NETIF_CONN_INVALID   (-1)
 Value for marking a handle invalid.
 

Typedefs

typedef int(* nimble_netif_conn_iter_t) (nimble_netif_conn_t *conn, int handle, void *arg)
 Iterator function signature used by nimble_netif_conn_foreach()
 

Functions

void nimble_netif_conn_init (void)
 Initialize the connection state manager.
 
nimble_netif_conn_tnimble_netif_conn_get (int handle)
 Get the connection context corresponding to the given handle.
 
int nimble_netif_conn_get_adv (void)
 Get the handle to the context that is currently advertising.
 
int nimble_netif_conn_get_connecting (void)
 Get the handle to the context that is busy connecting.
 
int nimble_netif_conn_get_by_addr (const uint8_t *addr)
 Find the connection to the peer with the given BLE address.
 
int nimble_netif_conn_get_by_gaphandle (uint16_t gaphandle)
 Find the connection using the given NimBLE GAP handle.
 
void nimble_netif_conn_foreach (uint16_t filter, nimble_netif_conn_iter_t cb, void *arg)
 Iterate over all connection contexts that match the filter condition.
 
int nimble_netif_conn_get_next (int handle, uint16_t filter)
 Find the next context that matches the filter condition.
 
unsigned nimble_netif_conn_count (uint16_t filter)
 Count the number of connections contexts for which the given filter applies.
 
int nimble_netif_conn_start_connection (const uint8_t *addr)
 Allocate an unused context for starting a connection.
 
int nimble_netif_conn_start_adv (void)
 Reserve a unused context for the purpose of accepting a new connection.
 
void nimble_netif_conn_free (int handle, uint8_t *addr)
 Free the connection context with the given handle.
 
uint16_t nimble_netif_conn_get_itvl_ms (int handle)
 Get the used connection interval for the given connection handle.
 
bool nimble_netif_conn_itvl_used (uint16_t itvl, int skip_handle)
 Check if the given connection interval is used, taking the minimal spacing as defined by NIMBLE_NETIF_CONN_ITVL_SPACING into account.
 
uint16_t nimble_netif_conn_gen_itvl (uint16_t min, uint16_t max)
 Generate a pseudorandom connection interval from the given range.
 
static nimble_netif_conn_tnimble_netif_conn_from_gaphandle (uint16_t gh)
 Find the connection context with a given GAP handle and return a pointer to it.
 
static int nimble_netif_conn_connecting (void)
 Convenience function to check if any context is currently in the connecting state (NIMBLE_NETIF_CONNECTING)
 
static int nimble_netif_conn_connected (const uint8_t *addr)
 Convenience function to check if we are currently connected to a peer with the given address.
 
static int nimble_netif_conn_is_open (const nimble_netif_conn_t *conn)
 Test if the given connection is (still) open.
 
static int nimble_netif_conn_is_adv (void)
 Convenience function to check if any context is currently in the advertising state (NIMBLE_NETIF_ADV)