[SLOT_0] ;только нулевой слот
mode = audioLANПрограммный модуль приёма и воспроизведения несжатого аудиопотока по локальной сети через RTP.
Совместимость
Требуется подключение к локальной сети. Модуль работает только в нулевом слоте.
Принцип работы
Источник потока на стороне ПК — приложение AntiDante: оно берёт звук с любого аудиоустройства Windows и отправляет его RTP-потоком с нужными параметрами.
Аудиопайплайн состоит из двух элементов: RTP-приёмник → I2S-выход. Декодирование не выполняется — поток воспроизводится как есть.
Режим приёма определяется опцией multicastAddress: если адрес задан, модуль
подключается к multicast-группе, иначе принимает unicast-поток на порт port.
Адрес можно сменить на лету командой setMulticastAddress.
При запуске модуль ждёт инициализации сетевого интерфейса, затем стартует пайплайн и рапортует своё состояние, громкость и адрес источника.
В отличие от opusLAN поток идёт без сжатия: задержка минимальна, но требуется заметно большая полоса пропускания.
| Параметр | Значение |
|---|---|
| Протокол | RTP (unicast / multicast) |
| Кодек | без сжатия (PCM) |
| Самплрейт | 48000 Гц (настраиваемый, 8000–96000) |
| Разрядность | 16 бит (настраиваемая, 8–32) |
| Каналы | 2 (стерео) |
| Задержка | ~70 мс |
Топики
База топика события:
<deviceName>/audioStream_<slot>— напримерmoduleBox/audioStream_0
База топика действия:
<deviceName>/audioStream_<slot>— напримерmoduleBox/audioStream_0
Полный топик — база плюс направление и имя: moduleBox/audioStream_0/action/setVolume.
Опции
Доступные опции:
- disableOnStart — флаг, стартовать в выключенном состоянии и ждать
action/enableсо значением1. По умолчанию модуль активен сразу. - volume — число(int), громкость. Диапазон 0–100. По умолчанию 100.
- multicastAddress — строка, multicast адрес IPv4 - если задан режим multicast иначе unicast. По умолчанию 239.0.7.0.
- port — число(int), порт приёма потока. По умолчанию 7777.
- sampleRate — число(int), частота дискретизации Гц. Диапазон 8000–96000. По умолчанию 48000.
- bitsPerSample — число(int), бит на отсчёт. Диапазон 8–32. По умолчанию 16.
- bufSize — число(int), размер jitter-буфера мс. Диапазон 20–200. По умолчанию 40.
События
| Топик | Payload | Описание |
|---|---|---|
audioStream_<slot>/event/enable | 0 / 1 | Активен 1 или спит 0 |
audioStream_<slot>/event/volume | целое, % | Текущая громкость |
audioStream_<slot>/event/address | строка | Текущий адрес потока |
Пример: топик moduleBox/audioStream_0/event/volume, payload 80.
Команды
| Топик | Payload | Описание |
|---|---|---|
audioStream_<slot>/action/setVolume | 0–100 | Установить громкость |
audioStream_<slot>/action/setMulticastAddress | строка | Сменить multicast адрес на лету - IPv4 или 0 для unicast |
audioStream_<slot>/action/enable | 0 / 1 | Включить (1) или выключить (0) модуль |
Индикация
- Светодиод выключен — модуль в состоянии DISABLE.
- Светодиод горит постоянно — модуль активен, поток принимается.
- Светодиод мигает — модуль активен, но поток не обнаружен.
Примеры
[SLOT_0]
mode = audioLAN
options = multicastAddress:239.0.7.5, volume:80, port:7777
[SLOT_1]
mode = button_led
;нажатие ставит приём на паузу, отпускание возобновляет
crosslink = button_1/event/press:1->audioStream_0/action/enable:0, button_1/event/press:0->audioStream_0/action/enable:1Подробнее — внутренние связи (crossLink).