10#include "persistent_storage/persistent_storage.h"
12#ifdef CONFIG_BRIDGED_DEVICE_BT
13#include <zephyr/bluetooth/addr.h>
43#ifdef CONFIG_BRIDGE_MIGRATE_PRE_2_7_0
44 constexpr static auto kBridgedDeviceEndpointIdPrefix =
"eid";
45 constexpr static auto kBridgedDeviceLabelPrefix =
"label";
46 constexpr static auto kBridgedDeviceTypePrefix =
"type";
47#ifdef CONFIG_BRIDGED_DEVICE_BT
48 constexpr static auto kBtPrefix =
"bt";
49 constexpr static auto kBtAddrPrefix =
"addr";
53#ifdef CONFIG_BRIDGE_MIGRATE_VERSION_1
54 struct BridgedDeviceV1 {
57 size_t mNodeLabelLength;
58 char mNodeLabel[MatterBridgedDevice::kNodeLabelSize] = { 0 };
59 size_t mUserDataSize = 0;
60 uint8_t *mUserData =
nullptr;
86#ifdef CONFIG_BRIDGE_MIGRATE_PRE_2_7_0
88 mBridgedDeviceEndpointId(kBridgedDeviceEndpointIdPrefix, strlen(kBridgedDeviceEndpointIdPrefix),
90 mBridgedDeviceNodeLabel(kBridgedDeviceLabelPrefix, strlen(kBridgedDeviceLabelPrefix),
92 mBridgedDeviceType(kBridgedDeviceTypePrefix, strlen(kBridgedDeviceTypePrefix), &mBridgedDevice)
93#ifdef CONFIG_BRIDGED_DEVICE_BT
95 mBt(kBtPrefix, strlen(kBtPrefix), &mBridgedDevice),
96 mBtAddress(kBtAddrPrefix, strlen(kBtAddrPrefix), &mBt)
207#ifdef CONFIG_BRIDGE_MIGRATE_PRE_2_7_0
218 bool MigrateDataOldScheme(uint8_t bridgedDeviceIndex);
221#ifdef CONFIG_BRIDGE_MIGRATE_VERSION_1
231 bool MigrateDataVersion1(uint8_t bridgedDeviceIndex);
237#ifdef CONFIG_BRIDGE_MIGRATE_PRE_2_7_0
246 bool LoadBridgedDeviceEndpointId(uint16_t &endpointId, uint8_t bridgedDeviceIndex);
255 bool RemoveBridgedDeviceEndpointId(uint8_t bridgedDeviceIndex);
267 bool LoadBridgedDeviceNodeLabel(
char *label,
size_t labelMaxLength,
size_t &labelLength,
268 uint8_t bridgedDeviceIndex);
277 bool RemoveBridgedDeviceNodeLabel(uint8_t bridgedDeviceIndex);
287 bool LoadBridgedDeviceType(uint16_t &deviceType, uint8_t bridgedDeviceIndex);
296 bool RemoveBridgedDeviceType(uint8_t bridgedDeviceIndex);
298#ifdef CONFIG_BRIDGED_DEVICE_BT
307 bool LoadBtAddress(bt_addr_le_t &addr, uint8_t bridgedDeviceIndex);
316 bool RemoveBtAddress(uint8_t bridgedDeviceIndex);
320 Nrf::PersistentStorageNode mBridge;
321 Nrf::PersistentStorageNode mBridgedDevicesCount;
322 Nrf::PersistentStorageNode mBridgedDevicesIndexes;
323 Nrf::PersistentStorageNode mBridgedDevice;
324 Nrf::PersistentStorageNode mVersion;
326#ifdef CONFIG_BRIDGE_MIGRATE_PRE_2_7_0
329 Nrf::PersistentStorageNode mBridgedDeviceEndpointId;
330 Nrf::PersistentStorageNode mBridgedDeviceNodeLabel;
331 Nrf::PersistentStorageNode mBridgedDeviceType;
332#ifdef CONFIG_BRIDGED_DEVICE_BT
333 Nrf::PersistentStorageNode mBt;
334 Nrf::PersistentStorageNode mBtAddress;
static constexpr auto kBridgedDevicesCountPrefix
Definition bridge_storage_manager.h:38
void FactoryReset()
Factory reset the storage.
static constexpr auto kBridgedDevicesIndexesPrefix
Definition bridge_storage_manager.h:39
bool Init()
Initialize BridgeStorageManager module.
static constexpr auto kMaxIndexLength
Definition bridge_storage_manager.h:78
bool StoreBridgedDevicesIndexes(uint8_t *indexes, uint8_t count)
Store bridged devices indexes into settings.
BridgeStorageManager()
Definition bridge_storage_manager.h:80
bool LoadBridgedDevicesIndexes(uint8_t *indexes, uint8_t maxCount, size_t &count)
Load bridged devices indexes from settings.
static BridgeStorageManager & Instance()
Definition bridge_storage_manager.h:102
bool LoadBridgedDevicesCount(uint8_t &count)
Load bridged devices count from settings.
static constexpr auto kBridgePrefix
Definition bridge_storage_manager.h:37
static constexpr auto kBridgedDevicePrefix
Definition bridge_storage_manager.h:40
static constexpr auto kMaxUserDataSize
Definition bridge_storage_manager.h:35
static constexpr auto kVersionPrefix
Definition bridge_storage_manager.h:41
bool StoreBridgedDevicesCount(uint8_t count)
Store bridged devices count into settings.
bool StoreBridgedDevice(BridgedDevice &device, uint8_t index)
Store bridged device into settings. Helper method allowing to store endpoint id, node label and devic...
bool RemoveBridgedDevice(uint8_t bridgedDeviceIndex)
Remove bridged device entry from settings.
bool LoadBridgedDevice(T &device, uint8_t index)
Load bridged device from settings.
static constexpr uint8_t kCurrentVersion
Definition bridge_storage_manager.h:76
Definition bridge_storage_manager.h:33
static constexpr uint8_t kNodeLabelSize
Definition matter_bridged_device.h:97
static constexpr uint8_t kUniqueIDSize
Definition matter_bridged_device.h:98
Definition ble_connectivity_manager.h:21
uint16_t mDeviceType
Definition bridge_storage_manager.h:66
size_t mUniqueIDLength
Definition bridge_storage_manager.h:67
size_t mNodeLabelLength
Definition bridge_storage_manager.h:69
char mNodeLabel[MatterBridgedDevice::kNodeLabelSize]
Definition bridge_storage_manager.h:70
uint16_t mEndpointId
Definition bridge_storage_manager.h:65
size_t mUserDataSize
Definition bridge_storage_manager.h:71
uint8_t * mUserData
Definition bridge_storage_manager.h:72
char mUniqueID[MatterBridgedDevice::kUniqueIDSize]
Definition bridge_storage_manager.h:68
Definition bridge_storage_manager.h:64