Node.js Модуль для взаимодействия с беспроводными модулями RFM9X LORA. Предназначен для использования с радиозвучками Adafruit.
Код был протестирован только на Raspberry Pi, но технически может также работать на других досках, поддерживаемых Onoff и SPI-Device.
См. example/pingpong.js для простого примера получения и отправки данных.
Модули экспортируют один класс RFM9x .
RFM9xКласс, представляющий модуль LORA. Конструктор не требует аргументов.
const rfm9x = require ( 'rfm9x' ) ;
const module = new rfm9x ( ) ;
await module . init ( { ... } ) ;debug - информация о отладке SPI SPI debug Установите это свойство в true , чтобы выпечатать все связи SPI на консоли.
Примечание. Поскольку вызовы console.log() в большинстве случаев синхронны, что позволяет это повлиять на время! Например, это может привести к тому, что переключение от отправки в режим приема будет достаточно медленным, чтобы пропустить ответы из других узлов.
init(options) - Настройки инициализации модуля и LORAstartReceive() - Поместите модуль LORA в режим приема и включите событие receivestopReceive() - Поместите модуль LORA в режим резервного режима и прекратите получать пакетыsend(payload) - отправьте пакет через LoragetVersion() - получить номер версии чипа из модуля init(options)options - объект параметров (см. Ниже). Все свойства необязательны, значения по умолчанию будут использоваться при опущенных.Инициализировать модуль и настройки LORA. Нужно вызвать, прежде чем использовать любую из функций радио.
Возвращает обещание, которое разрешается без значения.
Поддерживаются следующие варианты:
frequencyMhz - базовая частота в МГц, по умолчанию: 915preambleLength - длина преамбулы Lora в байтах, по умолчанию: 8bandwidthHz - Lora Bandwidth в Гц, по умолчанию: 500000codingRate - скорость кодирования Лоры, допустимые значения составляют 5 (4/5) до 8 (4/8), по умолчанию: 5spreadingFactor - Коэффициент распространения LORA, допустимые значения составляют от 6 до 12 , по умолчанию: 7enableCrcChecking - Будь то включение проверки CRC на входящих пакетах, по умолчанию: falsetxPowerDb - Мощность передатчика в БД, допустимые значения составляют от 5 до 23 (в настоящее время поддерживается только режим высокой мощности), по умолчанию: 23enableAgc - будь то автоматическое управление усилением, по умолчанию: falseresetPin - Номер штифта GPIO, к которому подключена линия сброса RFM9X, по умолчанию: 25dio0Pin - Количество штифта GPIO, к которой подключена линия RFM9X DIO0, по умолчанию: 22dio1Pin - не используется в настоящее время. Количество штифта GPIO, к которой подключена линия RFM9X DIO1, по умолчанию: 23dio2Pin - в настоящее время не используется. Количество штифта GPIO, к которой подключена линия RFM9X DIO2, по умолчанию: 24spiSpeedHz - скорость связи SPI в Гц, по умолчанию: 100000txTimeoutMs - максимальное время в миллисекундах, чтобы дождаться завершения передачи пакета, по умолчанию: 2000 startReceive() Поместите модуль LORA в режим приема и включите событие receive .
Возвращает обещание, которое разрешается без значения.
stopReceive()Поместите модуль LORA в режим ожидания и прекратите получать пакеты.
Возвращает обещание, которое разрешается без значения.
send(payload)payload - Buffer до 255 байтовОтправить пакет через Лору.
Возвращает обещание, которое разрешается без значения после завершения передачи.
ПРИМЕЧАНИЕ. После передачи пакета модуль автоматически переключается в режим ожидания. Если вы хотите продолжить получение пакетов после передачи, вам нужно будет позвонить startReceive() после завершения передачи.
getVersion()Получите номер версии чипа из модуля.
Возвращает обещание, которое разрешается с номером версии (целое число).
receive(packet) - испускается при получении пакета LorareceiveError() - излучается при получении неверного пакета LORA receive(packet)Событие, которое испускается, когда получен пакет Lora.
packet - это объект, содержащий следующие свойства:
payload - Buffer содержащий содержимое пакетаrssiDb - RSSI пакета в дБsnrDb - SNR пакета в дБ receiveError()Событие, которое испускается при получении пакета Lora, но было отброшено из -за ошибок приема (например, проверка CRC не удалась).