Системные требования к проекту "Индикатор уровня"¶
- Table of contents
- Системные требования к проекту "Индикатор уровня"
- Ссылки
- Основные функции
- Классы пользователей и их характеристики
- Операционная среда
- Ограничения разработки
- Документация пользователя
- Выбор и получение звукового сигнала с различных источников
- Рассчёт уровня сигнала
- Интерфейс с пользователем
- Интерфейс с аппаратным обеспечением
- Программный интерфейс
- Интерфейс передачи данных
- Требования по надёжности
- Требования по безопасности
- Требования по качеству
- Другие требования
- Приложение 1: Словарь терминов
Введение
h3. Назначение проекта
Данный проект представляет собой внешнюю часть 4 этапа проекта "Caps-Clock", касающуюся обработки звукового сигнала и вычисление его уровня для индикатора уровня. Разрабатываемое в проекте ПО должно представлять собой настраиваемый стандартный сервис MS Windows XP. В нём будет задаваться привязка источников звука к часовым серверам и вид индикатора.
Ссылки¶
1. Аудио логгер DJIN Аудио Логгер
2. Cистема отображения информации Caps-Clock
Общее описание
h3. Развитие проекта
Индикатор уровня представляет собой дальнейшее развитие Аудио Логгера и стыковку его с системой отображения информации Caps-Clock. Индикатор уровня, так же как и Аудио Логгер, получает оцифрованный звуковой поток с выбранного устройства, но не записывает его на диск, а производит расчёт уровня сигнала в соответствии с заданной методикой. Полученные результаты отсылаются на заданные серверы системы Caps-Clock. Каждый сервер системы Caps-Clock затем отправляет на соответствующие часовые машины команды отображения информации в зависимости от конфигурации каждой часовой машины.
В общем виде схема может выглядеть так:
{{Image("Config.jpg","width=500px")}}
Основные функции¶
Основными функциями данного продукта являются:
- выбор и получение звукового сигнала с различных источников
- рассчёт уровня в соответствии с заданными параметрами
- отправка полученных результатов на сервер часов
- конфигурация параметров получения сигнала, рассчёта и отправки результатов
Классы пользователей и их характеристики¶
N/A
Операционная среда¶
Индикатор уровня должен быть выполнен в виде стандартного сервиса Windows XP/Server 2003/Server 2008. За основу берётся код Аудио Логгера от DJIN v.2.15. Взаимодействие осуществляется с часовым сервером Build 1.4 от 29.01.10.
Ограничения разработки¶
Конфигурация и параметры сервиса должны храниться в файле формата XML. Отсылка результата должна осуществляться также в виде пакета XML, формат которого будет приведён ниже.
Документация пользователя¶
TBD
Функции системы
h3. Конфигурация параметров и расcчёта сигнала
Описание
Перед началом работы необходимо настроить индикатор уровня. Для этого надо выбрать источник, звуковой сигнал которого будет обрабатываться, затем выбрать метод расcчёта уровня сигнала, выбрать часовой сервер, который будет обрабатывать сообщения от Индикатора, и каналы отображения, в которые будет отображаться уровень рассчитываемого сигнала. Должна быть предусмотрена возможность сохранения/загрузки выбранных параметров и старта/остановки рассчёта по заданному каналу.
Последовательность взаимодействия
При обращении к свойствам сервиса открывается окно с конфигурацией, которая загружается из XML файла. Конфигурация каждого канала обработки отображается на отдельной вкладке. Можно остановить/запустить работу канала обработки, поменять его параметры, удалить, создать новый канал обработки. Можно также сохранить полную конфигурацию каналов в отдельный файл и затем загрузить её назад. Изменение конфигурации канала возможно только при его остановке.
Функциональные требования
REQ-1: Каждый канал обработки отображается на отдельной вкладке
REQ-2: Канал обработки включает 1 источник сигнала, 1 алгоритм обработки, 1 или несколько часовых серверов, на каждом из которых отмечены 1 или несколько каналов отображения
REQ-3: Текущая конфигурация задаётся/сохраняется в формате XML:
- список серверов
<servers>
<server>
<ID>nn<ID>
<IP>nnn.nnn.nnn.nnn</IP>
<enmPort>nnnn</enmPort>
<descrition>XXXXXXXXXXXXXXXXXXXXXXXXXXXX</description>
<LevelMacro>XXXXXXXXXXXXXX</LevelMacro>
<channels>
<channel>
<ID>nn<ID>
<description>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</description>
</channel>
...
</channels>
<enmCommand>
...
</enmCommand>
</server>
...
</servers>
- список каналов обработки
<processes>
<process>
<ID>nn</ID>
<name>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</name>
<state>stopped</state>
<source>XXXXXXXX</source>
<indicator>XXXXXXXX</indicator>
<servers>
<server>
<ID>nn</ID>
<channels>
<channel>nn</channel>
<channel>nn</channel>
...
</channels>
</server>
...
</servers>
</process>
...
</processes>
REQ-4: Предусматривается возможность сохранения/загрузки конфигурации в/из XML файла.
REQ-5: В файле конфигурации задаётся имя макроса, занимающегося обработкой уровня на часовом сервере в виде:
<LevelMacro>CommandName</LevelMacro>
Выбор и получение звукового сигнала с различных источников¶
Описание
Получение и выбор звукового сигнала осуществляется полностью идентично Аудио Логгеру.
Последовательность взаимодействия
Функциональные требования
Рассчёт уровня сигнала¶
Описание
Параметры рассчёта загружаются при старте сервиса или отдельного канала обработки из файла конфигурации. Затем осуществляется рассчёт уровня сигнала в dB по заданному алгоритму. Рассчитывется уровень сигнала и его пиковое значение.
Последовательность взаимодействия
Функциональные требования
REQ-6: Параметры алгоритмов рассчёта могут быть различны для разных алгоритмов.
REQ-10: Необходимо предусмотреть задание уровня номинала в dB (Nном). В этом случае Выходное значение будет рассчитываться как:
Nвых = Nрассч - Nном
Отправка результат
ов рассчёта
Описание
Описание каждого сервера содержит его IP-адрес, номер порта и список каналов отображения на данном часовом сервере. После обработки сигнала сервис формирует выходные XML пакеты для каждого выбранного канала отображения каждого выбранного часового сервера каждого канала обработки и отправляет его в порт по этому адресу. При этом для моно-каналов данные отсылаются как данные левого канала. Фактически, индекс канала отображения представляет собой номер макроса часового сервера, внутри которого затем и осуществляется передача данных на часовые машины.
Последовательность взаимодействия
Событие от заданного интервала отображения -> Сканирование списка серверов -> Сканирование списка каналов отображения -> Формирование XML пакета для канала отображения -> Отсылка пакета на часовой сервер
Функциональные требования
REQ-7: Формат выходного пакета также задётся в файле конфигурации, откуда и считывается при старте/рестарте сервиса.
REQ-8: Список серверов и каналов отображения задаётся также при помощи файла конфигурации и загружается при старте/рестарте сервиса.
REQ-9: Формат выходного пакета может быть различным для различных серверов. Поэтому сервис ищет и устанавливает:
- в тэге имя канала отображения в виде "!CommandName id", где CommandName это имя макроса, считанное из файла конфигурации, а id - номер канала отображения.
- в value параметра Llevel - рассчитанное значение уровня левого/моно канала
- в value параметра Ltop - рассчитанное значение пика левого/моно канала
- в value параметра Rlevel - рассчитанное значение уровня правого канала
- в value параметра Rtop - рассчитанное значение уровня правого канала
Требования к интерфейсу
Интерфейс с пользователем¶
Пользовательский интерфейс открывается при открытии Свойств сервиса и имеет вид:
{{Image("ServiceParms.jpg")}}
На каждой вкладке отображается один канал обработки.
В поле "Название" вводится имя канала обработки, которое также показывается в качестве имени вкладки. Его можно исправить, а сам канал обработки можно удалить по нажатию на кнопку "Удалить" (и соответственно, вкладку).
В комбо-боксе "Источник" выбирается источник звука, который будет обрабатываться.
В комбо-боксе "Тип индикатора" выбирается алгоритм обработки сигнала.
В списке "Часовые серверы" показываются серверы, информация о которых была считана из файла конфигурации. При этом справа можно отметить чек-боксом те серверы, на которые будет посылаться уровень в данном канале обработки.
При выборе какого-либо сервера в списке серверов в список с названием этого сервера (на картинке "Сервер студии") загружаются все каналы отображения, доступные на этом сервере. Список доступных каналов отображения также загружается из файла конфигурации. Здесь так же можно отметить те каналы, в которые должна передаваться информация из данного канала обработки.
Индикатор "Работает" показывает, находится ли данный канал обработки в состоянии работы, или он остановлен. Все изменения в конфигурации возможны только при остановленном канале.
Кнопка "Старт" запускает канал, а кнопка "Стоп" - останавливает.
Находящиеся внизу кнопки позволяют манипулировать всей конфигурацией в целом: кнопка "Добавить" создаёт новый канал обработки (и соответственно, новую вкладку), кнопка "Сохранить" позволяет выбрать нужный XML файл и сохранить в нём текущую конфигурацию, а кнопка "Загрузить" позволяет выбрать нужный XML файл и загрузить его в текущую конфигурацию. Загрузка конфигурации должна быть возможно только при остановленном сервисе.
Интерфейс с аппаратным обеспечением¶
TBD
Программный интерфейс¶
TBD
Интерфейс передачи данных¶
Результат расчёта уровня отсылается на указанный порт часового сервера, находящегося по указанному IP, в формате:
<enmCommand>
<call>CommandName id</call>
<params>
<param>
<name>Llevel</name>
<value>nnnnn</value>
</param>
<param>
<name>Ltop</name>
<value>nnnnn</value>
</param>
<param>
<name>Rlevel</name>
<value>nnnnn</value>
</param>
<param>
<name>Rtop</name>
<value>nnnnn</value>
</param>
</params>
</enmCommand>
При этом
CommandName - команда на указанном сервере, id - номер канала на указанномом сервере,
nnnnn - рассчитанное значение уровня или пика в dB Llevel и Rlevel представляют собой уровни в левом и правом канале, а Ltop и Rtop - пиковые значения в левом и правом каналах соответственно. При этом для моно-канала все значения передаются через Llevel и Ltop, a Rlevel и Rtop можно опустить.
Другие нефункциональные требования
h3. Требования к производительности
TBD
Требования по надёжности¶
TBD
Требования по безопасности¶
TBD
Требования по качеству¶
TBD
Другие требования¶
TBD
Приложение 1: Словарь терминов¶
TBD