Skip to main content

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)


Опис параметрів

ПараметрТипОпис
outArrayuint8_t*Вказівник на вихідний масив розміром мінімум 3 байти, куди буде записано упаковані дані. Якщо передано nullptr, функція достроково завершує роботу.
settingsconst 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...
}