buildSettingsPacket
Утилітарна функція для упаковки періоду сну пристрою у 3-байтовий масив для передачі по BLE.
Функція buildSettingsPacket належить до простору імен flowercare::utils і використовується для упаковки тривалості сну пристрою (sleepDurationSec) у компактний 3-байтовий буфер перед відправкою через Bluetooth Low Energy (BLE).
Підключення
#include "Utils.hpp"
## Сигнатура
```cpp
inline void buildSettingsPacket(uint8_t* outArray, const prefStorage::DeviceSettings& settings)
Опис параметрів
| Параметр | Тип | Опис |
|---|---|---|
outArray | uint8_t* | Вказівник на вихідний масив розміром мінімум 3 байти, куди буде записано упаковані дані. Якщо передано nullptr, функція достроково завершує роботу. |
settings | const prefStorage::DeviceSettings& | Структура налаштувань пристрою, яка містить поле sleepDurationSec (період сну в секундах). |
Деталі упаковки бітів
Записування sleepDurationSec у 3 байти виконується через бітові зсуви:
outArray[0]: містить старші байти значенняsleepDurationSec(зсув на 9 бітів праворуч, маска0xFF).outArray[1]: містить середні байти (зсув на 1 біт праворуч, маска0xFF).outArray[2]: містить наймолодший біт значення, зсунутий у 7-й (найстарший) біт 3-го байта ((sleepDurationSec & 0x01) << 7).
Приклад використання
#include "Utils.hpp"
void sendBleSettings() {
// 1. Формуємо налаштування
prefStorage::DeviceSettings mySettings;
mySettings.sleepDurationSec = 3600; // Період сну 1 година
// 2. Буфер для збереження 3-байтового пакета
uint8_t bleBuffer[3] = {0};
// 3. Упаковка даних
flowercare::utils::buildSettingsPacket(bleBuffer, mySettings);
// 4. Передача буфера bleBuffer через BLE...
}