Описание функций библиотеки

Эта страница содержит информацию о функциях библиотеки ELABORY-SX1262 и их назначении. Подробно описан формат всех функций библиотеки и указаны все сопутствующие данные — диапазоны допустимых значений, значения по умолчанию и т. д.

Функции инициализации

bool begin(long frequency = 868000000)

Функция инициализации и запуска работы чипа SX1262. По умолчанию (без указания параметров) рабочая частота устанавливается 868 МГц. Микросхема SX1262 позволяет изменять рабочую частоту в диапазоне от 150 до 960 МГц.

Обратите внимание! Передатчик может работать только на разрешённых в вашей стране частотах. Работа в других диапазонах частот является незаконной. Для России разрешён диапазон 868 МГц.

void setPins(int nss = SX1262_NSS, int reset = SX1262_RESET, int dio1 = SX1262_DIO1)

По умолчанию, чип SX1262 инициализируется при помощи стандартного набора пинов:

NSS 10
RESET 9
DIO1 2

Но, если на вашей плате LoRa чип управляется при помощи других пинов, то функция setPins позволяет задать нужный вам набор нестандартных GPIO.

Функции работы с SPI

void setSPI(SPIClass& spi)

При необходимости, функция setSPI позволяет задать нужный нестандартный номер SPI интерфейса контроллера.

void setSPIFrequency(uint32_t frequency)

Функция setSPIFrequency позволяет задать нужную частоту работы SPI интерфейса. По умолчанию это 8 МГц (8E6).

Установка параметров

bool setFrequency(long frequency)

Функция setFrequency позволяет задать любую нужную частоту работы LoRa чипа из поддерживаемых (от 150 до 960 МГц).

Обратите также внимание на предупреждение выше о разрешённых диапазонах частот.

bool setSignalBandwidth(long sbw)

Установка ширины полосы сигнала. Выбирается из списка заранее определённых значений: 7.81E3, 10.42E3, 15.63E3, 20.83E3, 31.25E3, 41.67E3, 62.5E3, 125E3, 250E3*, 500E3.

По умолчанию используется значение 250E3.

bool setCodingRate4(int denominator)

Скорость кодирования LoRa сигнала устанавливается из диапазона значений 5-8. По умолчанию используется значение 5.

bool setSpreadingFactor(int sf)

Коэффициент расширения спектра сигнала устанавливается из диапазона 5-12, по умолчанию используется значение 7.

void setPreambleLength(long length)

Длина преамбулы устанавливается из диапазона значений 0x0001-0xFFFF.

void setTxPower(int pwr)

Установка выходной мощности передатчика. Устанавливается из диапазона 0-22, по умолчанию используется максимальное значение 22.

void setGain(int gain)

Усиление сигнала. Выбирается из двух дискретных значений 0/1. По умолчанию 0.

void setOCP(uint8_t mA)

Защита от перегрузки по току. Верхняя граница ограничения 150 мА.

void disableCrc()

Функция disableCrc отключает обработку сигнала с использованием подсчёта контрольной суммы.

void enableCrc()

Функция enableCrc включает обработку сигнала с использованием подсчёта контрольной суммы.

void disableInvertIQ()

Функция disableInvertIQ отключает инвертирование I/Q составляющих LoRa сигнала.

void enableInvertIQ()

Функция enableInvertIQ включает инвертирование I/Q составляющих LoRa сигнала.

Установка профилей работы

bool setPreset(int preset)

Функция setPreset позволяет устанавливать один из трёх заранее определённых наборов настроек для различных типовых сценариев применения LoRa связи.

PRESET_DEFAULT — типовые настройки
PRESET_LONGRANGE — настройки для работы на больших расстояниях
PRESET_FAST — настройки для наиболее быстрой связи

Приём/передача данных

size_t write(uint8_t byte)

Функция для передачи по LoRa каналу связи одного байта.

size_t write(uint8_t *buffer, size_t size)

Функция для передачи по LoRa каналу связи массива байтов.

size_t writeString(String s)

Функция для передачи по LoRa каналу связи строки символов.

int receive(byte* buff, int buffMaxLen)

Функция receive проверяет принят ли LoRa пакет и, если принят, то возвращает его.

int receive_blocking(byte* buff, int buffMaxLen, uint32_t timeout)

Функция receive_blocking делает то же самое, что и функция receive, только дополнительно имеет возможность задания таймаута ожидания прихода пакета.

Установка режимов работы

void receiveMode()

Функция receiveMode переключает LoRa чип в режим ожидания приёма беспроводных пакетов.

void idle()

Это аналог режима «standby» — некое нейтральное состояния LoRa чипа, которое может использоваться как переходное между другими режимами работы.

void sleep()

Функция перевода LoRa чипа в режим сна с минимальным энергопотреблением.

void end()

Функция «выключения» LoRa чипа.

Получение текущих настроек

long getFrequency()

Возвращает текущее значение рабочей частоты.

int getPower()

Возвращает текущее значение уровня мощности передатчика.

long getSignalBandwidth()

Возвращает текущее значение ширины полосы.

int getSpreadingFactor()

Возвращает текущее значение коэффициента расширения спектра сигнала.

int getCodingRate4()

Возвращает текущее значение коэффициента скорости кодирования.

int getLowDataRateOptimize()

Возвращает текущее значение (0/1) оптимизации для режимов SF11/12.

long getTransmitTimeout()

Возвращает текущий таймаут для режимов (SF5-SF12) из значений: 5000, 7000, 12000, 20000, 40000, 60000, 160000, 252000.

long getPreambleLength()

Возвращает текущее значение длины преамбулы посылки LoRa сигнала.

int getCrc()

Возвращает текущий режим работы CRC.

int getIq()

Возвращает текущий режим работы с I/Q составляющими LoRa сигнала.

int getGain()

Возвращает текущий режим работы усиления (0/1).

uint8_t getOCP()

Возвращает текущее значение ограничения силы тока передатчика.

Получение параметров сигнала

int packetRssi()

Возвращает значение RSSI последнего принятого пакета.

float packetSnr()

Возвращает значение SNR последнего принятого пакета.

int rssi()

Возвращает текущее значение RSSI сигнала.

Генерация случайных чисел

byte random()

Возвращает случайное число, сгенерированное на основе состояния радиочастотного эфира.

Системные функции

byte readRegister(uint16_t addressToRead)

Функция для чтения состояния регистров микросхемы SX1262, предназначенная для непосредственного управления LoRa чипом.

void writeRegister(uint16_t addressToWrite, byte val)

Функция для записи данных в регистры микросхемы SX1262, предназначенная для непосредственного управления LoRa чипом.

Заключение

Здесь дано только формальное описание функций библиотеки ELABORY-SX1262, ознакомиться с примерами применения этих функций на практике вы можете в соответствующих разделах этой документации.


Ссылки по теме

Разработка контроллеров LORAmaster Lite из серии LORAmaster