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

Bluetooth Coordinated Set Identification Profile (CSIP) APIs. More...

#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <zephyr/autoconf.h>
#include <zephyr/bluetooth/bluetooth.h>
#include <zephyr/bluetooth/conn.h>
#include <zephyr/bluetooth/gap.h>
#include <zephyr/kernel.h>
#include <zephyr/sys/slist.h>

Go to the source code of this file.

Data Structures

struct  bt_csip_set_member_cb
 Callback structure for the Coordinated Set Identification Service. More...
 
struct  bt_csip_set_member_register_param
 Register structure for Coordinated Set Identification Service. More...
 
struct  bt_csip_set_coordinator_set_info
 Information about a specific set. More...
 
struct  bt_csip_set_coordinator_csis_inst
 Struct representing a coordinated set instance on a remote device. More...
 
struct  bt_csip_set_coordinator_set_member
 Struct representing a remote device as a set member. More...
 
struct  bt_csip_set_coordinator_cb
 Struct to hold the Coordinated Set Identification Profile Set Coordinator callbacks. More...
 

Macros

#define BT_CSIP_SET_COORDINATOR_DISCOVER_TIMER_VALUE   K_SECONDS(10)
 Recommended timer for member discovery.
 
#define BT_CSIP_SET_COORDINATOR_MAX_CSIS_INSTANCES   0
 Defines the maximum number of Coordinated Set Identification service instances for the Coordinated Set Identification Set Coordinator.
 
#define BT_CSIP_READ_SIRK_REQ_RSP_ACCEPT   0x00
 Accept the request to read the SIRK as plaintext.
 
#define BT_CSIP_READ_SIRK_REQ_RSP_ACCEPT_ENC   0x01
 Accept the request to read the SIRK, but return encrypted SIRK.
 
#define BT_CSIP_READ_SIRK_REQ_RSP_REJECT   0x02
 Reject the request to read the SIRK.
 
#define BT_CSIP_READ_SIRK_REQ_RSP_OOB_ONLY   0x03
 SIRK is available only via an OOB procedure.
 
#define BT_CSIP_SIRK_SIZE   16
 Size of the Set Identification Resolving Key (SIRK)
 
#define BT_CSIP_RSI_SIZE   6
 Size of the Resolvable Set Identifier (RSI)
 
#define BT_CSIP_ERROR_LOCK_DENIED   0x80
 Service is already locked.
 
#define BT_CSIP_ERROR_LOCK_RELEASE_DENIED   0x81
 Service is not locked.
 
#define BT_CSIP_ERROR_LOCK_INVAL_VALUE   0x82
 Invalid lock value.
 
#define BT_CSIP_ERROR_SIRK_OOB_ONLY   0x83
 SIRK only available out-of-band.
 
#define BT_CSIP_ERROR_LOCK_ALREADY_GRANTED   0x84
 Client is already owner of the lock.
 
#define BT_CSIP_DATA_RSI(_rsi)   BT_DATA(BT_DATA_CSIS_RSI, _rsi, BT_CSIP_RSI_SIZE)
 Helper to declare bt_data array including RSI.
 

Typedefs

typedef void(* bt_csip_set_coordinator_discover_cb) (struct bt_conn *conn, const struct bt_csip_set_coordinator_set_member *member, int err, size_t set_count)
 Callback for discovering Coordinated Set Identification Services.
 
typedef void(* bt_csip_set_coordinator_lock_set_cb) (int err)
 Callback for locking a set across one or more devices.
 
typedef void(* bt_csip_set_coordinator_lock_changed_cb) (struct bt_csip_set_coordinator_csis_inst *inst, bool locked)
 Callback when the lock value on a set of a connected device changes.
 
typedef void(* bt_csip_set_coordinator_sirk_changed_cb) (struct bt_csip_set_coordinator_csis_inst *inst)
 Callback when the SIRK value of a set of a connected device changes.
 
typedef void(* bt_csip_set_coordinator_ordered_access_cb_t) (const struct bt_csip_set_coordinator_set_info *set_info, int err, bool locked, struct bt_csip_set_coordinator_set_member *member)
 Callback for bt_csip_set_coordinator_ordered_access()
 
typedef bool(* bt_csip_set_coordinator_ordered_access_t) (const struct bt_csip_set_coordinator_set_info *set_info, struct bt_csip_set_coordinator_set_member *members[], size_t count)
 Callback function definition for bt_csip_set_coordinator_ordered_access()
 

Functions

void * bt_csip_set_member_svc_decl_get (const struct bt_csip_set_member_svc_inst *svc_inst)
 Get the service declaration attribute.
 
int bt_csip_set_member_register (const struct bt_csip_set_member_register_param *param, struct bt_csip_set_member_svc_inst **svc_inst)
 Register a Coordinated Set Identification Service instance.
 
int bt_csip_set_member_unregister (struct bt_csip_set_member_svc_inst *svc_inst)
 Unregister a Coordinated Set Identification Service instance.
 
int bt_csip_set_member_sirk (struct bt_csip_set_member_svc_inst *svc_inst, const uint8_t sirk[16])
 Set the SIRK of a service instance.
 
int bt_csip_set_member_get_sirk (struct bt_csip_set_member_svc_inst *svc_inst, uint8_t sirk[16])
 Get the SIRK of a service instance.
 
int bt_csip_set_member_generate_rsi (const struct bt_csip_set_member_svc_inst *svc_inst, uint8_t rsi[6])
 Generate the Resolvable Set Identifier (RSI) value.
 
int bt_csip_set_member_lock (struct bt_csip_set_member_svc_inst *svc_inst, bool lock, bool force)
 Locks a specific Coordinated Set Identification Service instance on the server.
 
int bt_csip_set_coordinator_discover (struct bt_conn *conn)
 Initialise the csip_set_coordinator instance for a connection.
 
struct bt_csip_set_coordinator_set_memberbt_csip_set_coordinator_set_member_by_conn (const struct bt_conn *conn)
 Get the set member from a connection pointer.
 
bool bt_csip_set_coordinator_is_set_member (const uint8_t sirk[16], struct bt_data *data)
 Check if advertising data indicates a set member.
 
int bt_csip_set_coordinator_register_cb (struct bt_csip_set_coordinator_cb *cb)
 Registers callbacks for csip_set_coordinator.
 
int bt_csip_set_coordinator_ordered_access (const struct bt_csip_set_coordinator_set_member *members[], uint8_t count, const struct bt_csip_set_coordinator_set_info *set_info, bt_csip_set_coordinator_ordered_access_t cb)
 Access Coordinated Set devices in an ordered manner as a client.
 
int bt_csip_set_coordinator_lock (const struct bt_csip_set_coordinator_set_member **members, uint8_t count, const struct bt_csip_set_coordinator_set_info *set_info)
 Lock an array of set members.
 
int bt_csip_set_coordinator_release (const struct bt_csip_set_coordinator_set_member **members, uint8_t count, const struct bt_csip_set_coordinator_set_info *set_info)
 Release an array of set members.
 

Detailed Description

Bluetooth Coordinated Set Identification Profile (CSIP) APIs.