Медиа - Ecler
Ecler2mqtt драйвер для медиа проигрывателя компании Ecler. Данные устройства используются в зданиях для организации фонового звучания.
Зависимости проекта
- библиотека mosquitto
sudo apt-get install libmosquitto-dev
- библиотека jsoncpp
sudo apt-get install libjsoncpp-dev
библиотека vlib
библиотека pthread
Логирование
Логирование по умолчанию выполняется в файл
/var/log/ecler2mqtt/ecler2mqtt.log
Пользователь, запускающий программу, должен обладать правами на запись в этот файл.
Параметром запуска -l
можно изменить имя файла. Каталог записи логов изменить нельзя.
Файл конфигурации
Драйвер читает конфигурацию из файла по умолчанию
/etc/driver.json
либо из файла, указанного параметром запуска -c
.
Описание конфигурации см. ниже.
Пример конфигурационного файла расположен в каталоге config
./config/driver.json
./config/driver_test.json
Запуск
Параметры запуска
- -c - используется указанный файл конфигурации (полный путь) вместо файла по умолчанию
- -d - выводить в журнал отладочную информацию
- -l - выводить логи в указанный файл вместо файла по умолчанию
- -v - выводить логирование в указанный файл вместо файла по умолчанию
Пример запуска с параметрами
./_bin/ecler2mqtt -d -v -c /etc/ecler2mqtt/config/driver.json
Описание конфигурации
Файл driver.json соответствует требованиям к файлам конфигурации драйверов нового поколения. Ниже приведены требования к
каждой из секций со стороны драйвера.
mqtt
Обязательна. Авторизация пока не реализована.
Пример:
"mqtt": {
"port": 1883,
"url": "localhost"
}
port.connection
Обязательна.
type: "base.ecler". Другие типы игнорируются.
tcp: обязательна. Авторизация не реализована
enabled: по умолчанию true. Если false, порт игнорируется.
poll_interval: по умолчанию 60. Интервал опроса в миллисекундах.
Пример:
"connection": {
"enabled": true,
"type": "base.ecler",
"tcp": {
"url": "10.4.2.100",
"port": 2003
}
}
port.devices
Обязательна. Содержит описания устройств Ecler.
name: обязательна. Используется в топике сообщений.
cname: не обязательна. В настоящей реализации не используется.
sid: не обязательна. В настоящей реализации не используется.
Пример:
{
"name": "Player1",
"sid": 1,
"cname": "ecler.player"
}
port.parameters.config
Не обязательна. В настоящей конфигурации используются фиксированные параметры, определенные разработчиком устройства.
Описание параметров
- title - название проигрываемого трека,
- status - состояние вкл/выкл устройства,
- counter - счетчик играемого трека (напр. "03:17"),
- txtSource - название источника аудиозаписей,
- SourceList - список источников аудиозаписей,
- source - номер трека в плейлисте(?),
- preset - номер источника (?),
- volume - громкость в процентах,
- stereo - стерео-режим - 1, моно - 0,
- repeat - повтор: 0 - все, 1 - один, 2 - повторять все, 3 - повторять один,
- playmode - порядок воспроизведения: 0 - последовательный, 1 - случайный,
- fade - затухание: 0 - no fade, 1 - cross fade, 2 - fade,
- playlist_index - номер трека в плей-листе (напр. "0006/0042")
Описание команд
Ниже приведен список команд для управления ecler
Команда | Параметр | Значение | Описание |
---|---|---|---|
get_stat | Состояние устройства. Не используется | ||
get_stat_ex | Расширенное состояние устройства. Вызывается автоматически | ||
play | turn_on | 1 | Включить воспроизведение |
stop | turn_on | 0 | Выключить воспроизведение |
next | next | любое | Воспроизвести следующую запись |
prev | prev | любое | Воспроизвести предыдущую запись |
vol_inc | inc | любое | Увеличить громкость на 1 дБ |
vol_dec | dec | любое | Увеличить громкость на 1 дБ |
vol | volume | 0-100 | Установить громкость в % от максимального |
open_url | openurl | URL медиафайла для воспроизведения | Воспроизвести файл по URL |
open_preset | preset | 1-20 | Номер пресета |
stereo_c | stereo | true/false | Включить/выключить стерео режим |
fade_c | fade | 0-2 | 0 - no fade, 1 - cross fade, 2 - fade |
mode | playmode | 0-1 | 0 - последовательный, 1 - случайный |
repeat_c | repeat | 0-3 | 0 - все, 1 - один, 2 - повторять все, 3 - повторять один |