Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
addr.h File Reference

Bluetooth device address definitions and utilities. More...

#include <stdint.h>
#include <string.h>
#include <zephyr/sys/printk.h>

Go to the source code of this file.

Data Structures

struct  bt_addr_t
 Bluetooth Device Address. More...
 
struct  bt_addr_le_t
 Bluetooth LE Device Address. More...
 

Macros

#define BT_ADDR_LE_PUBLIC   0x00
 
#define BT_ADDR_LE_RANDOM   0x01
 
#define BT_ADDR_LE_PUBLIC_ID   0x02
 
#define BT_ADDR_LE_RANDOM_ID   0x03
 
#define BT_ADDR_LE_UNRESOLVED
 
#define BT_ADDR_LE_ANONYMOUS
 
#define BT_ADDR_SIZE   6
 Length in bytes of a standard Bluetooth address.
 
#define BT_ADDR_LE_SIZE   7
 Length in bytes of an LE Bluetooth address.
 
#define BT_ADDR_ANY   (&bt_addr_any)
 Bluetooth device "any" address, not a valid address.
 
#define BT_ADDR_NONE   (&bt_addr_none)
 Bluetooth device "none" address, not a valid address.
 
#define BT_ADDR_LE_ANY   (&bt_addr_le_any)
 Bluetooth LE device "any" address, not a valid address.
 
#define BT_ADDR_LE_NONE   (&bt_addr_le_none)
 Bluetooth LE device "none" address, not a valid address.
 
#define BT_ADDR_IS_RPA(a)   (((a)->val[5] & 0xc0) == 0x40)
 Check if a Bluetooth LE random address is resolvable private address.
 
#define BT_ADDR_IS_NRPA(a)   (((a)->val[5] & 0xc0) == 0x00)
 Check if a Bluetooth LE random address is a non-resolvable private address.
 
#define BT_ADDR_IS_STATIC(a)   (((a)->val[5] & 0xc0) == 0xc0)
 Check if a Bluetooth LE random address is a static address.
 
#define BT_ADDR_SET_RPA(a)   ((a)->val[5] = (((a)->val[5] & 0x3f) | 0x40))
 Set a Bluetooth LE random address as a resolvable private address.
 
#define BT_ADDR_SET_NRPA(a)   ((a)->val[5] &= 0x3f)
 Set a Bluetooth LE random address as a non-resolvable private address.
 
#define BT_ADDR_SET_STATIC(a)   ((a)->val[5] |= 0xc0)
 Set a Bluetooth LE random address as a static address.
 
#define BT_ADDR_STR_LEN   18
 Recommended length of user string buffer for Bluetooth address.
 
#define BT_ADDR_LE_STR_LEN   30
 Recommended length of user string buffer for Bluetooth LE address.
 

Functions

static int bt_addr_cmp (const bt_addr_t *a, const bt_addr_t *b)
 Compare Bluetooth device addresses.
 
static bool bt_addr_eq (const bt_addr_t *a, const bt_addr_t *b)
 Determine equality of two Bluetooth device addresses.
 
static int bt_addr_le_cmp (const bt_addr_le_t *a, const bt_addr_le_t *b)
 Compare Bluetooth LE device addresses.
 
static bool bt_addr_le_eq (const bt_addr_le_t *a, const bt_addr_le_t *b)
 Determine equality of two Bluetooth LE device addresses.
 
static void bt_addr_copy (bt_addr_t *dst, const bt_addr_t *src)
 Copy Bluetooth device address.
 
static void bt_addr_le_copy (bt_addr_le_t *dst, const bt_addr_le_t *src)
 Copy Bluetooth LE device address.
 
int bt_addr_le_create_nrpa (bt_addr_le_t *addr)
 Create a Bluetooth LE random non-resolvable private address.
 
int bt_addr_le_create_static (bt_addr_le_t *addr)
 Create a Bluetooth LE random static address.
 
static bool bt_addr_le_is_rpa (const bt_addr_le_t *addr)
 Check if a Bluetooth LE address is a random private resolvable address.
 
static bool bt_addr_le_is_identity (const bt_addr_le_t *addr)
 Check if a Bluetooth LE address is valid identity address.
 
static int bt_addr_to_str (const bt_addr_t *addr, char *str, size_t len)
 Converts binary Bluetooth address to string.
 
static int bt_addr_le_to_str (const bt_addr_le_t *addr, char *str, size_t len)
 Converts binary LE Bluetooth address to string.
 
int bt_addr_from_str (const char *str, bt_addr_t *addr)
 Convert Bluetooth address from string to binary.
 
int bt_addr_le_from_str (const char *str, const char *type, bt_addr_le_t *addr)
 Convert LE Bluetooth address from string to binary.
 

Variables

const bt_addr_t bt_addr_any
 
const bt_addr_t bt_addr_none
 
const bt_addr_le_t bt_addr_le_any
 
const bt_addr_le_t bt_addr_le_none
 

Detailed Description

Bluetooth device address definitions and utilities.