Project

General

Profile

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 Добавить требование]

Задачи

TicketQuery(status<img src="closed&type" alt="">=requirement&type!=documentation&milestone_project=D3Extension,order=severity,group=priority)

[/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

Add picture from clipboard (Maximum size: 742 MB)