D3 Mixer Console Extension¶
- Table of contents
- D3 Mixer Console Extension
Описание¶
Пульт D3 позволяет управлять своими параметрами только по протоколу RS-232. Отображение внутренних параметров и уровней производится только на маленьком встроенном дисплее. Поэтому этот проект представляет собой разработку модуля, который предоставит возможность:
- редактирования и получения параметров
- получения уровней выходных сигналов пульта
- настройки параметров пульта
- отображения полной информации о состоянии пульта на стандартном дисплее
Целесообразным выглядит один из 3 вариантов:
1. Класс внутри DJinа.
{{Image("D3class.jpg","width=500px")}}
Наименее затратный вариант, в смысле разработки и сроков выполнения. Интегрируется внутрь кода DJinа.
Достоинства:
- Небольшие трудозатраты
- Низкая стоимость
- Легко корректируется.
- Ниболее быстрая передача данных (DJin-Class D3C->RS-232->D3).
Недостатки:
- Доступно только для DJinа.
- Отбирает время у DJinа для предачи данных.
- Комп с DJinом должен находиться рядом с пультом (RS-232 или USB).
- Информация с D3 доступна только одному DJinу.
2. Proxy (например, в виде сервиса)
{{Image("D3proxy.jpg","width=500px")}}
Несколько более затратный вариант. Может быть установлен как на один комп с DJinом, так и на другой комп.
Достоинства:
- Не зависит от кода DJinа, и соответственно, не влияет на него.
- Позволяет получать информацию о пульте нескольким приложениям одновременно.
- На платформе mini-ITX может выполняться как встроенный модуль пульта.
- DJin и приложения получают информацию по TCP/IP, а потому могут находиться на любом расстоянии от пульта.
- Может быть установлен на один комп с DJinом в целях экономии (тогда, правда, возникает необходимость расположения его вблизи пульта).
- Включается/выключается/работает независимо от DJina.
- Позволяет организовать режим автоопределения наличия его в локальной сети.
- Позволяет организовать настройку параметров D3 удалённо при помощи дополнительной внешней прикладной программы настройки.
Недостатки:
- Трудозатраты больше (реализация обмена по TCP/IP).
- Время передачи между DJinом и пультом увеличивается (DJin-TCP/IP->D3proxy-RS-232->D3)
3. Отдельный компонент на платформе mini-ITX D3CS (D3 Control System)
{{Image("Caps2D3.jpg","width=500px")}}
Наиболее затратный вариант. Зато может рассматриваться как выносной/встраиваемый модуль D3.
Достоинства:
- Полностью самостоятельный модуль.
- Позволяет приложениям и DJinам подключаться к модулю по TCP/IP как к D3.
- Позволяет получить подробную информацию о пульте на полноразмерном отдельном дисплее.
- Позволяет организовать режим автоопределения наличия D3 в локальной сети.
- Позволяет организовать настройку параметров D3 через Web-интерфейс.
Недостатки:
- Трудозатраты больше (реализация обмена по TCP/IP, Web-интерфейса, управления конфигурацией).
- Время передачи между DJinом и пультом увеличивается (DJin-TCP/IP->D3CS-RS-232->D3)
- Стоимость D3 увеличивается на стоимость компьютера mini-ITX.
Общение с D3¶
В настоящий момент общение с D3 выглядит следующим образом:
1. для получения какой-либо информации от D3 ему необходимо послать по RS-232 команду типа "получить страничку пресетов". При этом если номер пресета поставить 0, то получаем текущие установки.
2. D3 в ответ присылает по RS-232 страничку параметров
3. текущие уровни в настоящий момент недоступны, но Frank обещает в ближайшие неделю-две сделать отдельную команду для получения текущих уровней. Уровни доступны (будут) только выходные.
4. для изменения текущих параметров (или параметров пресета) подготавливаем блок параметров и посылаем команду типа "записать пресет"
5. D3 в ответ присылает уведомление или код ошибки.
6. для стирания пресета посылаем команду типа "стереть пресет"
7. получаем в ответ уведомление или код ошибки
При возникновении событий в настоящий момент ничего не получаем.
Что можно сделать¶
- Придётся, видимо, с некоторой частотой опрашивать пресет 0 для получения текущего состояния (например, 40 мсек). И хранить их в у себя в буфере, а при обращении снаружи, от приложения, выдавать текущие параметры из буфера.
- Можно добавить команду для приложения типа "обновить состояние" для принудительной отсылки команды получения информации от D3.
- Если будем собирать что-то в виде proxy или отдельной компоненты, то можно предусмотреть что-то типа подписки на текущий уровень какого-либо канала(ов). Чтобы он тупо отсылался подписчику без запросов с его стороны.
- Такую же подписку можно устроить и на изменение каких-то других параметров. Другими словами, организовать генерацию событий.
- Для автоопределения можно организовать отсылку от proxy/отдельной компоненты multicast-сообщения (например, раз в 30 сек) со своим ID и параметрами, чтобы остальные участники игры могли определить его наличие и подключиться к нему.
В общем, на мой взгляд, наиболее перспективным выглядит 3DProxy, потому как он:
- относительно недорог (относительно D3CS)
- по возможностям достаточно широк (относительно Class D3C)
- им можно пользоваться в составе DJinа
- если потребуется D3CS, то модули протокола и общения с пультом можно будет просто взять, как есть.
Требования¶
TicketQuery(resolution!=invalid&milestone_project=D3Extension&type=requirement,order=priority)
[/newticket?type=requirement&milestone_project=D3Extension Добавить требование]
Задачи¶
[/newticket?type=task&milestone_project=D3Extension Добавить задачу]
[/query?status=closed&milestone_project=XXX&order=changetime&col=id&col=summary&col=owner&col=type&col=priority&col=milestone&col=component&col=changetime&desc=1&type=requirement Посмотреть завершенное]
Документация¶
TicketQuery(resolution!=invalid&milestone_project=D3Extension&type=documentation,order=priority)
[/newticket?type=documentation&milestone_project=D3Extension Добавить документацию]
Ссылки¶
[version:D3Extension Проект в Trac]
Контакты¶
| ФИО | Должность | Контакты | Телефон | Trac |
| Шабуров Виталий | Архитектор | vshaburov@tract.ru | +79219969226 | |