nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches
ble_bridged_device.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
7#pragma once
8
11
12#include <bluetooth/gatt_dm.h>
13#include <zephyr/bluetooth/addr.h>
14#include <zephyr/bluetooth/conn.h>
15#include <zephyr/bluetooth/gatt.h>
16
17namespace Nrf
18{
19
20struct BLEBridgedDeviceProvider;
21
23 bt_addr_le_t mAddr;
26 bool mInitiallyConnected = false; /* Indicates whether the first connection has been established and the device
27 has been successfully added to the Bridge. */
28 bt_conn *mConn;
30};
31
33public:
35 : BridgedDeviceDataProvider(updateCallback, commandCallback)
36 {
37 }
39
40 virtual const bt_uuid *GetServiceUuid() = 0;
41 virtual int ParseDiscoveredData(bt_gatt_dm *discoveredData) = 0;
42
44 void SetConnectionObject(bt_conn *conn) { mDevice.mConn = conn; }
45 bt_conn *GetConnectionObject() { return mDevice.mConn; }
46 void RemoveConnectionObject() { mDevice.mConn = nullptr; }
47
62 void *context)
63 {
64 mDevice.mAddr = address;
67 mDevice.mProvider = this;
68 }
69
81
90
91 bt_addr_le_t GetBtAddress() { return mDevice.mAddr; }
92
97
105 {
106 if (mFailedRecoveryAttempts < UINT16_MAX) {
108 }
109 }
110
118
119protected:
122};
123
124} /* namespace Nrf */
void SetConnectionObject(bt_conn *conn)
Definition ble_bridged_device.h:44
uint16_t GetFailedRecoveryAttempts()
Get a number of failed recovery attempts for this provider.
Definition ble_bridged_device.h:96
void ConfirmInitialConnection()
Confirm that the mFirstConnectionCallback has been already called.
Definition ble_bridged_device.h:89
void InitializeBridgedDevice(bt_addr_le_t address, BLEConnectivityManager::DeviceConnectedCallback callback, void *context)
Initialize BLE bridged device.
Definition ble_bridged_device.h:61
BLEBridgedDeviceProvider(UpdateAttributeCallback updateCallback, InvokeCommandCallback commandCallback)
Definition ble_bridged_device.h:34
~BLEBridgedDeviceProvider()
Definition ble_bridged_device.h:38
virtual int ParseDiscoveredData(bt_gatt_dm *discoveredData)=0
uint16_t mFailedRecoveryAttempts
Definition ble_bridged_device.h:121
void RemoveConnectionObject()
Definition ble_bridged_device.h:46
bt_conn * GetConnectionObject()
Definition ble_bridged_device.h:45
void NotifySuccessfulRecovery()
Inform provider that recovery attempt for it succeeded.
Definition ble_bridged_device.h:117
bool IsInitiallyConnected()
Check if the bridged device has been initially connected.
Definition ble_bridged_device.h:80
virtual const bt_uuid * GetServiceUuid()=0
bt_addr_le_t GetBtAddress()
Definition ble_bridged_device.h:91
void NotifyFailedRecovery()
Inform provider that recovery attempt for it failed.
Definition ble_bridged_device.h:104
BLEBridgedDevice & GetBLEBridgedDevice()
Definition ble_bridged_device.h:43
BLEBridgedDevice mDevice
Definition ble_bridged_device.h:120
Definition ble_bridged_device.h:32
CHIP_ERROR(*)(bool success, void *context) DeviceConnectedCallback
Definition ble_connectivity_manager.h:111
static BLEConnectivityManager & Instance()
Definition ble_connectivity_manager.h:268
CHIP_ERROR RemoveBLEProvider(bt_addr_le_t address)
Remove the BLE provider from the manager's list.
void(*)(BridgedDeviceDataProvider &dataProvider, chip::ClusterId clusterId, chip::CommandId commandId, Nrf::Matter::BindingHandler::InvokeCommand invokeCommand) InvokeCommandCallback
Definition bridged_device_data_provider.h:22
void(*)(BridgedDeviceDataProvider &dataProvider, chip::ClusterId clusterId, chip::AttributeId attributeId, void *data, size_t dataSize) UpdateAttributeCallback
Definition bridged_device_data_provider.h:19
Definition bridged_device_data_provider.h:17
Definition ble_connectivity_manager.h:21
bt_conn * mConn
Definition ble_bridged_device.h:28
void * mFirstConnectionCallbackContext
Definition ble_bridged_device.h:25
BLEConnectivityManager::DeviceConnectedCallback mFirstConnectionCallback
Definition ble_bridged_device.h:24
bt_addr_le_t mAddr
Definition ble_bridged_device.h:23
BLEBridgedDeviceProvider * mProvider
Definition ble_bridged_device.h:29
bool mInitiallyConnected
Definition ble_bridged_device.h:26
Definition ble_bridged_device.h:22