Project

General

Profile

Системные требования к проекту "Caps-Clock Kernel"

ОБСУЖДЕНИЕ ДОКУМЕНТА ВЕДЕТСЯ ТУТ

Введение
h3. Назначение

Система Caps-Clock - это сетевая IT система реального времени, предназначенная для динамического отображения различного вида визуальной и звуковой информации, необходимой для функционирорвания предприятия.

Информация отображается на множестве LCD дисплеев (терминалов), назваемых в данном документе "Часовая Машина", расположенных в различных помещениях, областях и зонах на терртории предприятия, объединённых в единую компьютерную сеть.

Информация представляется на LCD в виде визуальных объектов, представленных в определённом наборе и позиционированных на экране с различным масштабом, например:

  • часы разного вида
  • таймеры
  • сигнализационные или информационные табло и символы
  • текстовая и символьная информация в виде текстовых окон, бегущих и статических строк
  • различные текстовые таблицы
  • специализированные индикаторы (индикаторы уровня)
  • встроенные видеоокна
  • etc

Каждая часовая машина может иметь собственную конфигурацию экрана. Настройка такой конфигурации (количество и расположение объектов на экране, их позиционирование, масштабирование и набор свойств) может производиться при помощи специальной прикладной программы.

В качестве источников информации системы используются:

  • текстовые данные
  • аудио, видео и другие потоки данных
  • сетевые команды
  • телеметрическая информация от оборудования (GPI/GPO)

Эта информация принимается и обрабатывается системой, после чего используется для наполнения экранов данными или управления. Информация может вводиться как вручную с использованием специальных прикладных программ с любого компьютерного места оператора, так и автоматически от аппаратных средств или функционирующих на предприятии программных средств.

Система имеет в своём составет также специальные программы для выполнения различных настроек и начальной установки конфигураций всех часовых машин, состава и связей системы, устройств и источников информации, а также реакции системы на различные внешние воздействия.

Ссылки

r1 Техническое задание

r2 Документация по первой версии системы

Общее описание
h3. Развитие проекта

Данный проект является дальнейшим развитием первой версии системы Caps-Clock, выполненной на базе технологии JAVA, с учётом всех выявленных недостатков и преимуществ первой версии продукта.

Основные функции

Общий вид системы можно представить в виде следующей диаграммы:

{{Image("Common.jpg","width=600px")}}

Система принимает от различных групп пользователей и подключенного оборудования различные сигналы, данные и потоки данных, обрабатывает их в соответствии с заданными правилами и конфигурацией и отображает их в удобном для пользователей виде. При этом вид отображения, состав системы, описание реакции системы на сигналы могут гибко меняться в соответствии с требованиями пользователей. Все компоненты системы синхронизируются с указанным сервером NTP.

Группы пользователей и их характеристики

Всех пользователей системы можно условно разделить на 7 групп, которые объединяются в 2 больших класса:

  1. Пользователи, которые являются источниками отображаемой информации.
  2. Пользователи, которые используют информацию, поставляемую пользователями первой группы, для ведения эфира или производства других работ предметной области.

Источники информации

К источникам информации принадлежит 4 группы пользователей:

  • Администраторы системы

Администраторы системы - это пользователи, которые могут менять конфигурацию системы: её состав, виды отображений на каждой отдельной часовой машине, реакцию системы на различные сигналы от внешнего оборудования и на поступающие из сети сообщения, производить начальную установку системы. Они могут делать это как вручную, внося изменения непосредственно в файлы конфигурации, так и с использованием различных прикладных программ, упрощающих процесс изменения конфигурации.

  • Редакторы программ

Редакторы программ - это пользователи, которые могут оперативно менять отображаемую информацию, которая используется ведущими, в рамках установленной конфигурации системы. Эта информация включает в себя различную текстовую информацию, информацию о различных интервалах времени и о наступлении некоторых событий. Всю работу они делают с использованием специально разработанных прикладных программ, и не имеют доступа к файлам конфигурации напрямую. В качестве "редактора" может выступать специальная прикладная программа, которая, например, может производить периодическую подкачку данных из Интернета или из базы данных.

  • Операторы студийного и другого оборудования

Операторы оборудования - это пользователи, которые управляют различным внешним оборудованием, которое в свою очередь подключено к системе по USB через устройство ТР-312/314. Например, они нажимают какие-то кнопки, вводят/выводят фэйдеры на пульте, в результате чего замыкаются/размыкаются "сухие контакты", сигналы от которых преобразуются в некую последовательность данных, передаваемую в систему. В качестве "оператора" может выступать прикладная программа, эмулирующая работу ТР-312/314.

  • Сигналы от внешнего оборудования, принимаемые в автоматическом режиме

Этот класс представлен полностью прикладными программами, которые принимают поточные данные от различного внешнего оборудования: от источников звука, видео, потоков из сети, - преобразуют их в команды отображения системы Caps-Clock и передают их системе для отображения.

Некоторым отдельным типом источника информации является NTP сервер, по которому осуществляется синхронизации системы Caps-Clock.

Потребители информации

З группы пользователей принадлежат к классу потребителей информации:

  • Операторы студийного и другого оборудования

Операторы студийного оборудования - это пользователи, которые руководствуются отображаемой информацией для контроля и управления различным внешним студийным и другим оборудованием. Например, индикатором уровня для регулировки уровня выходного сигнала или включения охлаждающего оборудования при поступлении сигнала перегрева etc.

  • Дикторы

Дикторы - это пользователи, которые используют текстовую и другую информацию непосредственно для выдачи в эфир, а не как справочную информацию. В этом случае отображаемая информация является заменой других, традиционных источников информации. Например, можно организовать ленту новостей или выводить текущий курс валют etc вместо распечатки их на бумаге.

  • Ведущие программ в студии

Так называемые "ведущие программ" - это группа пользователей, которая использует различные уведомления и предупреждения системы для организации своих действий по ведению эфира или других работ предметной области. Например, можно использовать информацию от таймера, который показывает время до завершения какого-то отрезка времени, как руководство для изменения темпа или содержания беседы. Или например, включение индикатора "MIC" может заставить воздержаться от входа в студию, где включен микрофон etc. В общем, можно сказать, что "ведущие программ" - это все остальные потребители информации, за исключением "операторов" и "дикторов".

Операционная среда

Взаимодействие первого класса пользователей с сиcтемой должно осуществляться через операцинную среду Microsoft Window XP/Server 2003/Server 2008. Отображаемая информация должна выводиться на машинах серии miniITX под управлением LINUX EMDEBIAN версии 5.0.3.

В качестве платформ могут использоваться машины:

В дальнейшем этот ряд может быть расширен. Возможно использование MS Windows XP на данной платформе и на машинах типа ASUS EeeBox PC.

Ограничения разработки

При отображении должны быть предприняты меры для предотвращения эффекта мерцания и подергивания. Для этого перерисовка изображения должна производиться со скоростью не ниже 25 кадров/сек.

Время реакции при нажатии на кнопку или другой орган управления, подключенный через ТР-312, не должно превышать 40 мсек.

При выводе индикатора уровня должен правильно отображаться, как минимум, один стерео индикатор уровня. Т.е. может выполняться 4 команды отображения: уровень правого канала, уровень левого канала, пик правого канала, пик левого канала. При частоте отрисовки 25 кдр/сек время выполнения команды отображения не должно превышать 1/(25*4) = 0.01 сек. Преполагается, что может одновременно отображаться до 6 стерео-каналов - в этом случае время выполнения команды уменьшается до 0.0015 сек.

В дальнейшем предусматривается подключение и вывод видеопотока, параметры которого будут уточняться на следующих этапах.

Моменты начала изменений отображения временных событий на часах, прогресс-индикаторах и транспарантах, а также и на других органах отображения, использующих события от таймера, должны быть синхронизированы и выровнены на границу 0.5 сек.

Интерфейс с ТР-312/314 осуществляется через виртуальный COM-порт по протоколу, описанному в [TP312_protokol.xls].

Интерфейс с другими приложениями осуществляется передачей по сети Ethernet пакетов TCP/IP по протоколу ENMP, описанному в "Техническом Задании" r1.

Документация пользователя

При поставке системы в её состав включаются:

  • Руководство по установке - содержит информацию по начальной установке системы.
  • Руководство администратора - содержит информацию по правилам написания файлов конфигурации и их изменения, а также описание внутренних команд системы.
  • Руководство по написанию серверных макросов и команд ENMP.
  • Набор стандартных сэмплов часовой машины и их описание.

Функции системы
h3. Начальная установка системы
h4. Описание и приоритет

Данная функция имеет средний приоритет и необходима для упрощения начальной установки системы и запуска её в эксплуатацию. Она имеет 2 составляющих:

  1. Установка компонентов на имеющиеся компьютеры MS Windows.
  2. Настройка компонентов, которые поставляются в виде законченного устройства (например, часовые машины под управлением EMDEBIAN).

Установка может производиться в 2-х режимах:

  1. При помощи исправления конфигурационных файлов вручную.
  2. При помощи специального пользовательского интерфейса.

Последовательность взаимодействия

При выполнении установки вручную пользователь самостоятельно находит конфигурационные файлы в указанных местах и вносит в них изменения: должна быть предусмотрена возможность их редактирования как локально, так и с помощью удалённого доступа. При этом обязательно должно присутствовать "Руководство по установке". Исправления вступают в силу после перезагрузки компьютера.

При установке компонент системы на имеющиеся компьютеры с помощью специального интерфейса пользователь запускает установочную программу, которая в диалоговом режиме помогает ему установить нужные компоненты и настроить их конфигурацию.

При настройке компонентов, которые поставляются в виде законченного устройства, с помощью специального интерфейса пользователь запускает Browser на удалённом компьютере и вводит в качестве URL сетевой адрес настраиваемого компонента. Затем в появившемся UI в диалоговом режиме настраивает нужные параметры компонента. По окончании настройки сохраняет изменения и отправляет компонент на перезагрузку.

Функциональные требования
h6. REQ-1:

Файлы конфигурации должны быть выполнены в формате XML.

REQ-2:

В Руководстве по установке должны быть полностью описаны все параметры конфигурационных файлов и приведены примеры.

REQ-3:

Для установки вручную должны быть обеспечены учётные записи администратора с правами, достаточными для:

  • редактирования необходимых конфигурационных файлов
  • удалённого доступа и редактирования этих файлов
  • создания каталогов и записи/удаления файлов из них
  • перезапуска компьютера, в том числе удалённо
REQ-4:

UI законченной компоненты должен обеспечивать возможность настройки всех необходимых параметров без применения ручного редактирования конфигурационных файлов, включая установку часового пояса и адреса сервера NTP.

REQ-5:

UI законченной компоненты должен иметь возможность отправить компьютер компоненты на перезагрузку.

REQ-6:

UI установки компоненты на MS Windows должен обеспечивать простой и понятный интерфейс, позволяющий скопировать нужные файлы с установочного носителя в нужное место, настроить все необходимые параметры без применения ручного редактирования конфигурационных файлов и системного реестра.

REQ-7:

UI установки компоненты на MS Windows должен проверять наличие необходимых для работы Caps-Clock системных компонент и сообщать о необходимости их установки.

REQ-8:

UI установки компоненты на MS Windows при необходимости перезагрузки должен запрашивать разрешение на перезагрузку компьютера и осуществлять её при получении разрешения от пользователя.

Администрирование системы
h4. Описание и приоритет

Данная функция имеет высокий приоритет. Это одна из наиболее важных функций системы. К функциям администрирования относятся:

  • Изменение состава системы - т.е. организация логической сети Caps-Clock, где указывается, какие компоненты с какими компонентами системы должны взаимодействовать, по каким адресам, по каким портам и по каким протоколам.
  • Изменение сетевых параметров каждой компоненты - имени, адреса и т.д.
  • Изменение схемы отображения информации - наборов и параметров органов отображения каждого компонента.
  • Измененеие реакции компонентов на события - редактирование и создание макросов, а так же карты реакции на сигналы от ТР-312/314.
  • Настройка синхронизации с сервером NTP.
  • Настройка локализации каждой компоненты.
  • Загрузка/удаление различных файлов и данных с каждой компоненты.

Администрирование, как и начальная установка, может выполняться в двух режимах:

  1. При помощи исправления конфигурационных файлов вручную.
  2. При помощи специального пользовательского интерфейса.

Последовательность взаимодействия

При выполнении администрирования вручную пользователь самостоятельно находит конфигурационные файлы в указанных местах и вносит в них изменения: должна быть предусмотрена возможность их редактирования как локально, так и с помощью удалённого доступа. Исправления вступают в силу после перезагрузки компьютера.

При администрировании с помощью специального пользовательского интерфейса пользователь запускает специальную прикладную программу, в которой может запросить текущую конфигурацию нужной компоненты, поменять эту конфигурацию, сохранить конфигурацию на локальном диске компоненты, загрузить её с локального диска компоненты, загрузить и сохранить конфигурацию с локального диска того компьютера, на котором работает эта прикладная программа. При необходимости пользователь должен иметь возможность выполнить перезагрузку администрируемой компоненты.

Функциональные требования
h6. REQ-9:

Прикладная программа может работать либо напрямую с конфигурационными файлами администрируемой компоненты, либо удалённо посредством запросов к системе, если она не имеет доступа к конфигурационным файлам.

REQ-10:

Прикладная программа конфигурации должна общаться с системой по протоколу ENMP в случае, если она обращается к удалённой компоненте системы.

REQ-11:

Прикладная программа должна иметь право чтения/записи/удаления конфигурационных файлов в случае, если она работает с конфигурационными файлами напрямую.

REQ-12:

Прикладная программа должна обеспечивать возможность получения и отображения выбранной конфигурации и её изменение.

REQ-13:

Прикладная программа должна обеспечивать возможность сохранения/удаления/загрузки выбранной конфигурации на локальном диске выбранной компоненты.

REQ-14:

Прикладная программа должна обеспечивать возможность сохранения/удаления/загрузки выбранной конфигурации на локальном диске собственного компьютера.

REQ-15:

Прикладная программа должна вносить изменения в текущую конфигурацию компонента только по специальной команде типа APPLY.

REQ-16:

Изменённая конфигурация не должна сохраняться при перезагрузке компоненты, если не была дана специальная команда типа SET CURRENT.

REQ-17:

Прикладная программа должна иметь локализуемый UI и возможность переключения между доступными вариантами локализации.

REQ-18:

Прикладная программа должна иметь максимально дружественный интерфейс с пользователем, и по возможности, выявлять максимальное количество ошибок в редактируемой конфигурации ДО её загрузки в компоненту.

REQ-19:

При необходимости программа должня обеспечивать перезагрузку выбранной компоненты по команде типа RELOAD.

REQ-20:

В случае, если прикладная программа работает с с загрузкой/сохранением конфигурационных файлов, она должна уметь показывать список конфигурационных файлов выбранного типа.

REQ-21:

Конфигурационный файл должен содержать в себе признак, к конфигурации какого типа он относится:

  • сетевая конфигурация
  • конфигурация органов отображения
  • конфигурация макросов
  • конфигурация сигналов от HW
  • etc

Получение сигналов от HW
h4. Описание и приоритет

Данная функция имеет высокий приоритет. Она позволяет принимать информацию о срабатывании внешнего оборудования (поступлении сигналов GPI), подключенного к системе через ТР-312/314 или сходное устройство. При получении одного из сигналов GPI функция анализирует полученные данные, выбирает нужный макрос в соответствии с картой конфигурации сигналов HW и выполняет его.

Последовательность взаимодействия

Последовательность взаимодействия выглядит следующим образом: при запуске компоненты, компонента загружает карту привязки сигналов HW и макросы, которые должны выполняться системой.

Затем в произвольный момент времени пользователь нажимает, например, кнопку или вводит фэйдер на пульте, "сухие контакты" которого подключены к ТР-312/314, либо звонит телефон, "сухие контакты" которого подключены к ТР-312/314, либо происходит срабатывание какого-либо другого технологического датчика, "сухие контакты" которого подключены к ТР-312/314. ТР-312/314 передаёт данные об этом событии драйверу (демону) USB. Драйвер преобразует их в последовательность данных виртуального COM-порта, которые перехватываются функцией обработки сигналов HW.

Дальше данные анализируются системой, выбирается и выполняется нужный макрос в соответствии с картой сигналов.

Функциональные требования
h6. REQ-22:

Карта привязки сигналов должна быть выполнена в формате XML и иметь идентификатор типа конфигурации.

REQ-23:

При возникновении ошибки во время загрузки карты конфигурации делается соответствующая запись в журнале компоненты. Если дальнейшая работа невозможна, то об этом выдаётся сообщенине в виде диалогового окна, и работа компоненты завершается.

REQ-24:

Суммарное время работы данной функции и функции отображения сигналов HW от момента срабатывания "сухих контактов" до момента отображения на экране не должно превышать 40 мсек.

REQ-25:

Карта привязки также может содержать описание реакции системы на ошибочные ситуации, произошедшие в результате выполнения макросов, для случая, когда они не перехватываются самим макросом.

REQ-26:

Система поддерживает работу с устройствами типа ТР-312/314 и совместимыми.

Оперативное изменение отображаемой информации
h4. Описание и приоритет

Данная функция имеет средний приоритет. Она предназначена для сбора и оперативной замены отображаемой информации в системе с заданной конфигурацией. Она выполняется только с помощью прикладных программ, которые общаются с системой при помощи обмена пакетами ENMP по сети с использованием протокола TCP/IP. Данная функция должна обеспечивать получение текущей отображаемой информации и отсылку новой информации выбранному компоненту. Информация попадает в прикладную программу либо вручную путём ввода или загрузки с некоторого источника, либо в автоматическом режиме при помощи загрузки с источника, например, с сайта или из базы данных.

Последовательность взаимодействия

В случае ручного ввода пользователь запускает прикладную программу и выбирает нужный компонент. Система получает текущую информацию с этого компонента и показывает её пользователю. Пользователь вводит нужную информацию или загружает её с какого-либо источника и делает запрос на отправку. Система отсылает эту информацию выбранному компоненту и получает в ответ информацию о состоянии выполнения, что и сообщает пользователю.

В случае автоматического ввода пользователь запускает прикладную программу, настраивает её на источник данных, время старта и/или периодичность получения данных, выбирает компонент, которому эти данные должны быть отосланы. После чего программа по установленному таким образом расписанию получает и отсылает данные выбранному компоненту.

Функциональные требования
h6. REQ-27:

Обмен между прикладной программой и системой должен производиться сообщениями в формате ENMP.

REQ-28:

Разрыв соединения между системой и прикладной программой осуществляется инициатором соединения.

REQ-29:

При эмуляции прикладной программой сигналов HW общее время работы данной функции и функции отображения не должно превышать 40 мсек.

REQ-30:

Действия, выполняемые системой при получении того или иного сообщения ENMP, описываются в виде макроса в макрореестре системы, который должен быть выполнен в формате XML.

REQ-31:

Макрореестр должен позволять не только описывать выполняемые действия, но также и реакцию системы на те или иные ошибки, состояния выполнения команд и приходящие информационные сообщения типа NOTYFY.

REQ-32:

Макросы должны позволять осуществлять вызовы с различными параметрами.

REQ-33:

Макросы могут содержать команды 4-х типов:

  • команды отображения
  • команды, включающие обращения к файлам
  • команды, осуществляющие обращение к функциям OS
  • команды отсылки сообщений ENMP
REQ-34:

Макрореестр загружается компонентами системы при старте/рестарте компонента или по специальной команде ENMP. При ошибке в процессе его загрузки в журнале компонента делается соответствующая запись. Если дальнейшая работа становится невозможной в результате такой ошибки, то для пользователя выводится диалоговое сообщение, а работа компонента завершается.

REQ-35:

Сообщение об ошибке в макрореестре должно по возможности точно указывать на место, в котором произошла ошибка и конкретную информацию об ошибке в целях облегчения поиска и устранения ошибки.

REQ-36:

Если при получении ENMP произошла ошибка, то об этом делается соответствующая запись в журнале компонента с указанием источника сообщения, ошибочного кода и места, где эта ошибка была обнаружена. В ответ отсылается сообщение об ошибке. В случае нормального завершения цикла обработки сообщения ENMP назад отсылается статус выполнения команды и результат её выполнения.

Обработка потоков данных и других сигналов реального времени
h4. Описание и приоритет

Данная функция имеет высокий приоритет. Она предназначена для сбора получения данных реального времени, как то видеопотоки, индикаторы уровня, другие поточные данные. Эти данные всегда собираются автоматически с помощью специальных прикладных программ и передаются системе через сеть с использованием TCP/IP. Время реакции системы на такие данные должно минимальным ввиду большой нагрузки на сеть и систему отображения.

Последовательность взаимодействия

Сначала пользователь запускает прикладную программу и выбирает нужный компонент. Система получает конфигурацию данного компонента и показывает её пользователю. Пользователь выбирает нужный источник данных, устанавливает параметры обработки и отображения, поле чего даёт программе команду на установку данной конфигурации. После этого программа выдаёт запрос к системе на установку данной конфигурации и начинает передачу данных в случае положительного ответа. В случае ошибки система делает соответствующую запись в журнале компоненты и отсылает код ошибки. При получении ошибочного кода прикладная программа уведомляет об этом пользователя и ждёт реакции пользователя.

Функциональные требования
h6. REQ-37:

Суммарная реакция данной функции и функции отображения должна быть минимизирована, но по крайней мере не превышать 0.01 сек.

REQ-38:

Команды ENMP должны допускать оптимизацию команд, относящихся к выполнению данной функции, с целью минимизации сетевого траффика.

REQ-39:

В рамках данной функции должна быть предусмотрена возможность получения прикладной программой состояния и конфигурации компонент, занимающихся отображением данного потока данных или сигналов реального времени.

REQ-40:

Прикладная программа должна иметь возможность настройки конфигурации компоненты, занимающейся отображением данного потока.

REQ-41:

Как и в функции опреативного изменения данных за закрытие соединения между системой и прикладной программой отвечает инициатор соединения.

REQ-42:

Для определения параметров, состава и конфигурации сети с потоковой передачей данных необходимо проведение дополнительных НИОКР.

Отображение справочной информации
h4. Описание и приоритет

Данная функция имеет наиболее высокий приоритет. Она предназначена для отображения различных уведомлений и другой справочной информации, предназначенной для ведения эфира и выполнения других организационных работ предметной области. Для выполнения этой функции система имеет в своём составе:

  • Часы
  • Прогресс-индикаторы
  • Транспаранты
  • Индикатор наличия сети
  • Календарь

Отчасти для этой же цели могут использоваться бегущие строки и текстовые окна, хотя их основное назначение - вывод непосредственной информации. В принципе, для различных уведомлений может также использоваться сам факт появления/исчезновения/изменения вида различных органов отображения.

Последовательность взаимодействия

При появлении какого-либо события в системе: действие пользователя, появление сигнала, поступление новой информации или сетевого сообщения, - система выполняет соответствующий макрос, который в свою очередь вызывает изменение на заданном органе отображения заданной часовой машины. Орган отображения меняет свой вид, чем привлекает внимание пользователя, который принимает это во внимание и соответствующим образом организует свою работу.

Функциональные требования
h6. REQ-43:

Суммарное время реакции данной функции и функции приёма сигнала (сообщения) не должно превышать 40 мсек.

REQ-44:

Время реакции на сигналы синхронизации NTP не должно превышать 0.5 сек.

REQ-45:

Моменты начала изменений отображения временных событий на часах, прогресс-индикаторах и транспарантах, а также и на других органах отображения, также использующих события от таймера, должны быть синхронизированы и выровнены на границу 0.5 сек. При установке режима мигания задаётся период мигания в единицах 1/2 сек. Т.е. период в одну секунду определяется числом 2. Начало периода мигания синхронизируется с началом секунды на таймере машины.

REQ-46:

Часы должны предусматривать настройку:

  • внешнего вида часов
  • смещения относительно таймера машины, которое может быть как положительным, так и отрицательным
  • цикла с двумя порогами
  • оповещений при прохождении порогов
  • оповещений при прохождении определённого времени (будильник)
  • признак проверки сети = FALSE
  • признак потока данных = FALSE
REQ-47:

Часы получают текущее время от таймера машины и добавляют к нему заданное смещение. Когда минутная стрелка или минутная метка находится внутри сектора, сектор считается текущим. Когда она внутри сектора переходит за один из порогов, меняется внешний вид часов и может инициироваться отсылка сообщения типа NOTIFY. При выходе минутной метки/стрелки из сектора меняется внешний вид часов и текущим становится другой сектор. Если установлен будильник, то при достижении этого времени (с учётом смещения) инициируется отсылка сообщения типа NOTIFY. При изменении времени таймера машины (например, при синхронизации от сервера NTP), часы должны автоматически перевестись на это новое время.

REQ-48:

Прогресс-индикаторы должны предусматривать настройку:

  • внешнего вида
  • цикла с двумя порогами
  • оповещений при прохождении порогов
  • тип таймера: однократный/циклический
  • автостарт
  • работа по таймеру/по внешним командам
  • прямой/обратный отсчёт
  • родительского органа отображения
  • начального и конечного значения
  • текущего значения
  • признак проверки сети = FALSE
  • признак потока данных = FALSE
REQ-49:

Текущее значение индикатора устанавливается по команде или по таймеру. При работе по таймеру автоматически производится увеличение значения на 1 единицу через 1 секунду, по достижении максимального значения текущее значение сбрасывается в начальное, если тип таймера – циклический, в противном случае он просто останавливается. При достижении какого-либо порога меняется внешний вид таймера, и может инициироваться отсылка событий типа NOTIFY. Прогресс-индикатор может быть не самостоятельным, а ведомым от родительского контрола типа ЧАСЫ. В этом случае пороги этих контролов совпадают, максимальное значение прогресс-индикатора становится равным длительности цикла, текущее значение становится равным текущему смещению от начала цикла, а работа такой пары осуществляется синхронно – ведущий родительский контрол. Тип таймера становится циклическим. Прогресс-индикатор может быть запущен и остановлен по внешним командам, если он установлен в режим работы по таймеру. Если таймер установлен в режим автостарта, то таймер должен запуститься в это время автоматически. Если время запуска уже прошло, но период таймера ещё не закончился, то таймер запускается сразу же, а его текущее значение устанавливается на время, прошедшее со времени, когда он должен был запуститься.

REQ-50:

Транспарант представляет собой окно, отображающее:

  • прямоугольник
  • прямоугольник со скруглёнными углами
  • трапецию
  • овал
  • или треугольник
  • признак проверки сети = FALSE
  • признак потока данных = FALSE

с текстом или пиктограммой внутри. Он может быть в одном из двух состояний - активном или пассивном. Переключения между состояниями осуществляется по внешней команде.

REQ-51:

Индикатор сети представляет собой контрол типа транспарант. Единственное отличие заключается в том, что он не принимает внешних команд смены состояния, а вместо этого переходит в активное состояние, если при работе ЧМ регистрируется отсутствие соединения с сервером Caps-Clock. В противном случае он остаётся в пассивном состоянии.

  • признак проверки сети = TRUE
  • признак потока данных = FALSE
REQ-52:

Календарь представляет собой контрол типа бегущая строка в состоянии СТОП. Единственное отличие заключается в том, что он не принимает внешние команды установки текста, а вместо этого при загрузке и смене текущей даты отображает текущую дату в заданном формате. Форматы – стандартные форматы OS.

  • признак проверки сети = FALSE
  • признак потока данных = FALSE

Отображение контекстной информации
h4. Описание и приоритет

Данная функция имеет высокий приоритет. Она предназначена для отображения информации, предназначенной для непосредственной выдачи в эфир, а также любого другого наполнения предметной области. Для выполнения этой функции система имеет в своём составе:

  • Бегущие строки
  • Текстовые окна с прокруткой

Эта функция позволяет отображать информацию, непосредственно передаваемую в эфир, отказаться от бумажной технологии и повысить оперативность снабжения такой информацией. Хотя бегущие строки и текстовые окна в состоянии СТОП можно использовать также и просто как элементы оформления.

Последовательность взаимодействия

Система принимает по сети команду на установку такого типа информации от прикладной программы. Далее в ссответствии с командой она либо считывает эти данные из файла, либо получает их из тела команды. После этого она отправляет передаёт их часовой машине, которая занимается отображением этих данных. Пользователь зачитывает эти данные или использует их как исходный материал для наполнения эфира.

Функциональные требования
h6. REQ-53:

Бегущая строка представляет собой прямоугольное окно с текстом внутри, расположенным в одну строчку. Бегущая строка должнв позволять настройку:

  • внешнего вида
  • скорости вращения (0 – стоп)
  • отображаемого контекста
  • типа вращения: циклический или однократный.
  • признак проверки сети = FALSE
  • признака потока данных
  • подключения к потоку данных
REQ-54:

Вращение текста в бегущей строке осуществляется справа налево путём задания скорости вращения. Должен быть полностью устранён эффект мерцания на скоростях, позволяющих нормально читать текст в эфире. В случае, если невозможно будет избежать эффекта мерцания, в режиме вращения можно считать заливку полностью непрозрачной. В режиме СТОП текст может быть длиннее чем, тот который помещается в окне. В этом случае он разбивается на страницы по размеру окна, а навигация по страницам осуществляется по внешним командам. Номер текущей страницы возвращается серверу при запросе с помощью внешней команды. Количество символов, которое помещается в окне, также возвращается по внешней команде. В режиме циклического вращения по окончании вывода последнего символа строки на экран строка начинает снова выводиться, начиная с первого символа. В режиме однократного вращения бегущая строка может быть подключена к потоку данных.

REQ-55:

Текстовое окно с прокруткой представляет собой прямоугольное окно с текстом внутри, расположенным в несколько строк. Текстовое окно должно позволять настройку:

  • внешнего вида
  • скорости вращения (0 – стоп, >0 – снизу вверх, <0 – сверху вниз)
  • отображаемого контекста
  • типа вращения: циклический или однократный.
  • признак проверки сети = FALSE
  • признака потока данных
  • подключения к потоку данных
REQ-56:

Текстовое окно должно самостоятельно разбивать текст на строки в зависимости от ширины окна. Вращение текста осуществляется путём задания скорости вращения. Должен быть полностью устранён эффект мерцания на скоростях, позволяющих нормально читать текст в эфире. В случае, если невозможно будет избежать эффекта мерцания, в режиме вращения можно считать заливку полностью непрозрачной. В режиме СТОП текст может быть длиннее чем, тот который помещается в окне. В этом случае он разбивается на страницы по размеру окна, а навигация по страницам осуществляется по внешним командам. Номер текущей страницы возвращается серверу при запросе. Количество символов, которое помещается в окне, и число строк также возвращается по запросам. В режиме циклического вращения по окончании вывода последнего символа текста на экран он начинает снова выводиться, начиная с первого символа. В режиме однократного вращения текстовое окно может быть подключено к потоку данных.

Отображение информации реального времени
h4. Описание и приоритет

Данная функция имеет средний приоритет. Она предназначена для отображения информации, предназначенной для контроля состояния внешнего оборудования, которым упраляет пользователь. Например, контроль уровня выходного сигнала по индикатору уровня, или параметры выходного видеопотока etc. Поскольку эта функция должна обеспечивать уверенную обратную связь с оборудованием, то время взаимодействия здесь крайне важно, поскольку несвоевременное отображение реальной ситуации может привести к браку в эфире. Для выполнения функции такого рода система имеет в своём составе:

  • Индикатор уровня
  • Проигрыватель мультимедиа

Частично для этой же цели могут использоваться транспаранты, при этом время их реакции по-прежнему остаётся в пределах 40 мсек.

Последовательность взаимодействия

Система принимает по сети команду на установку такого типа информации от прикладной программы. Далее в соответствии с вызываемым макро либо происходит покомандная передача данных для отображения, либо устанавливается специальный прямой канал приёма/передачи потоковых данных. После этого данные принимаются и отображаются на выбранной часовой машине. Пользователь наблюдает за изменением ситуации и производит управление оборудованием, исходя из этих данных.

Функциональные требования
h6. REQ-57:

Индикатор уровня представляет собой прямоугольное окно, состоящее из трёх областей:

  • области меток
  • области штрихов
  • и области сегментов

Область сегментов состоит из нескольких одинаковых прямоугольных сегментов, следующих один за другим. Каждый сегмент имеет два состояния — подсвеченный и неподсвеченный. Внешний вид сегментов и уровень срабатывания задаются таблицей, в которой определяются уровень сигнала для сегмента в дБ (float) и его внешний вид. Индикатора уровня должен позволять настройку:

  • внешнего вида
  • общего числа сегментов
  • смещения в dB относительно приходящего уровня (float)
  • признак проверки сети = TRUE
  • признака потока данных
  • подключения к потоку данных
REQ-58:

Индикатор уровня должен поддерживать команды типа:

  • УСТАНОВИТЬ ТЕКУЩЕЕ ЗНАЧЕНИЕ по индексу сегмента - при этом загораются все сегменты от начала до указанного сегмента включительно.
  • УСТАНОВИТЬ ТЕКУЩИЙ УРОВЕНЬ индикатора - при этом загораются все сегменты от начала до первого сегмента, имеющего уровень сигнала больший или равный заданному. Например, если один сегмент имеет метку 0, а предыдущий –5, то значение –3 будет поджигать сегмент/столбик 0:

{{Image("Ind2.jpg","width=400px")}}

  • УСТАНОВИТЬ ПИК ПО ЗНАЧЕНИЮ - при установке пика по значению сегмент с указанным номером зажигается.
  • УСТАНОВИТЬ ПИК ПО УРОВНЮ - при установке пика по уровню зажигается первый сегмент, имеющий уровень сигнала больший или равный заданному.
  • ПОГАСИТЬ ПИК - текущий пик гасится.
  • УСТАНОВИТЬ ТЕКУЩЕЕ ЗНАЧЕНИЕ И ПИК - аналогично выполнению одновременно трёх команд: ПОГАСИТЬ ПИК, УСТАНОВИТЬ ТЕКУЩЕЕ ЗНАЧЕНИЕ и УСТАНОВИТЬ ПИК ПО ЗНАЧЕНИЮ.
  • УСТАНОВИТЬ ТЕКУЩИЙ УРОВЕНЬ И ПИК - аналогично выполнению одновременно трёх команд: ПОГАСИТЬ ПИК, УСТАНОВИТЬ ТЕКУЩИЙ УРОВЕНЬ и УСТАНОВИТЬ ПИК ПО УРОВНЮ.

При пропадании сетевого соединения с источником данных уровень и пик сбрасываются до 0, и все сегменты гасятся.

REQ-59:

Проигрыватель мультимедиа представляет собой прямоугольное окно для проигрывания различных видео-файлов и потоковых видео-данных. Может подключаться к видеопотоку и отключаться от потока по внешней команде.

REQ-60:

Суммарная реакция данной функции и функции отображения должна быть минимизирована, но по крайней мере не превышать 0.01 сек.

Требования к интерфейсу
h3. Интерфейс с пользователем

Интерфейс с пользователем делится на несколько частей, в зависимости от выполняемой функции:

  • Интерфейс отображения информации - это основной интерфейс, который появляется на часовой машине и отображает получаемую системой информацию предметной области.
  • Интерфейс установки - это интерфейс, с помощью которого осуществляется начальная установка законченной компоненты и компоненты MS Windows, которая устанавливается на уже существующие машины. Это 2 различных вида интерфейса - один должен представлять собой Web-интерфейс (для законченной компоненты, потому что законченная компонента представляет собой отдельное устройство, не делящееся на части), тогда как другой должен представлять собой приложение MS Windows (например, wizard), которое бы позволяло установить компоненту со сменного носителя на работающую машину. Для каждой утилиты (прикладной программы) может быть предусмотрен свой установочный мнтерфейс.
  • Интерфейс администрирования - это интерфейс, с помощью которого осуществляется настройка конфигурации различных компонентов системы. Так же как и интерфейс начальной установки он делится на несколько видов - Web интерфейс для законченной компоненты (возможно, тот же, что для начальной установки), приложение MS Windows, которое помогает удалённо менять конфигурационные файлы различных компонент в удобной дружественной форме, и встроенный настроечный интерфейс компоненты MS Windows, который является неотъемлемой частью компоненты (например, свойства стандартного сервиса MS Windows).
  • Все остальные интерфейсы являются интерфейсами различных прикладных программ системы и описываются каждый в Системных требованиях к такой программе.

Интерфейс отображения информации
h6. REQ-61:

Интерфейс отображения информации представляет собой полноэкранное приложение, в котором не выводятся никакие системные элементы OS, включая курсор мыши.

REQ-62:

Главное окно этого интерфейса является контейнером для содержащихся внутри органов управления (controls). В качестве фона используется определённое изображение в формате JPG , которое при установке записывается вместе c исполняемым файлом, файлом конфигурации и другими служебными файлами на часовую машину. В процессе работы фоновое изображение может быть изменено при помощи внешней команды. Главное окно не имеет своего ControlID, а вместо этого используется ID часовой машины. Поэтому обращение ко всем его свойствам осуществляется по ID часовой машины.

{{Image("Controls.jpg","width=600px")}}

REQ-63:

Для главного окна задаётся:

  • Фоновый рисунок
  • Список контролов
  • Цвет и стиль текста по умолчанию
REQ-64:

Control - это дочернее окно (орган отображения) основного окна, обладающее набором свойств, различных ресурсов и методов управления. Каждый control имеет координаты начала, и размеры на экране. Каждый control располагается внутри основного окна и имеет метод (свойство), позволяющий ему становиться видимым и невидимым по внешней команде ON и OFF. Также каждый контрол имеет признак, позволяющий определить, нужна ли ему информация о наличии сетевого соединения. И у каждого контрола имеется признак, позволяющий определить, умеет ли он принимать поточные данные.

REQ-65:

Все координаты и размеры задаются в процентах от размеров экрана с точностью до 2 знаков после запятой.

REQ-66:

Часы представляют собой круглый циферблат с поминутной разметкой по окружности. Время на нём может отображаться с помощью стрелок или подсветкой минутных меток. По центру циферблата может включаться цифровое табло с текущим временем. Цветовая схема и способ отображения (стрелки, минутные метки, цифровое табло, количество секторов, пороги) задаётся в файле конфигурации до старта ЧМ и в процессе работы может изменяться с помощью внешних команд.

Для ЧАСОВ задаётся:

* вид часов: комбинация отображения стрелок, мнемонических меток, цифрового табло и штрихов

* информация о циклах:

* число циклов (от 1 до 12)

* цвет сектора: S_CURRENT_COLOR

* цвет сектора после порога завершения: S_FINALIZE_COLOR

* цвет сектора после критического порога: S_CRITICAL_COLOR + BLINKING

* прозрачность сектора

* информация о цифровом табло

* цифровое табло с текущим временем: ВКЛ/ВЫКЛ

* цвет, стиль и размер шрифта цифрового табло (цвет и стиль м.б. опущены)

* формат отображения времени : ЧЧ:ММ:СС или ЧЧ:ММ или ММ:СС или ЧЧ:ММ/СС

* место отображения цифрового табло

* цветовая схема меток

* неактивные метки : L_INACTIVE_COLOR

* активные метки до порогов: L_CURRENT_COLOR

* активные метки после порога завершения: L_FINALIZE_COLOR

* активные метки после критического порога: L_CRITICAL_COLOR + BLINKING

* диаметр минутных меток

* диаметр пятиминутных меток

* диаметр пятнадцатиминутных меток

* диаметр активных меток

* информация о стрелках

* shape

* цвет

* прозрачность

* центр вращения

* цветовая схема штрихов

* минутные штрихи

* толщина

* длина

* цвет

* расстояние от края

* пятиминутные штрихи

* толщина

* длина

* цвет

* расстояние от края

* пятнадцатиминутные штрихи

* толщина

* длина

* цвет

* расстояние от края

* информация о подложке

* фоновая картинка

* цвет фона, если нет картинки : BACK_COLOR

* прозрачность фона, если нет картинки

* маска

  • частота BLINKING в 1/2 сек (0 – ВЫКЛ)

Когда минутная стрелка или минутная метка находится внутри сектора, сектор считается текущим и закрашивается цветом S_CURRENT_COLOR. Когда она внутри сектора переходит за порог завершения, сектор закрашивается цветом S_FINALIZE_COLOR. Когда она внутри сектора переходит за порог завершения, сектор закрашивается цветом S_CRITICAL_COLOR и может включать мигание BLINKING. При выходе минутной метки/стрелки из сектора, он закрашивается цветом BACK_COLOR, если нет фоновой картинки, в противном случае он становится совершенно прозрачным. При наличии маски части фоновой картинки за пределами маски полностью прозрачны. Секунды отображаются либо секундной стрелкой, либо подсветкой минутных меток на мнемонических часах.

Пример часов со стрелками:

{{Image("ClockH.jpg","width=400px")}}

Пример мнемонических часов:

{{Image("ClockM.jpg","width=400px")}}

REQ-67:

Транспарант представляет собой окно, отображающее:

  • прямоугольник
  • прямоугольник со скруглёнными углами
  • трапецию
  • овал
  • или треугольник

с текстом или пиктограммой внутри.

Для транспаранта задаётся:

* геометрический вид окна

* признак: текст или пиктограмма

* текст или имя пиктограммы (картинка в формате JPG)

* маска для пиктограммы

* пассивный режим

* цвет, стиль и размер текста (цвет и стиль м.б. опущены)

* цвет заливки

* прозрачность заливки

* рамочка : ВКЛ/ВЫКЛ

* цвет рамочки

* активный режим

* цвет, стиль и размер текста (цвет и стиль м.б. опущены)

* цвет заливки

* прозрачность заливки

* рамочка : ВКЛ/ВЫКЛ

* цвет рамочки

  • BLINKING в 1/2 сек (0 – ВЫКЛ)

Параметры в процессе работы могут меняться по внешним командам.

{{Image("Transp.jpg","width=400px")}}

REQ-68:

Бегущая строка представляет собой прямоугольное окно с текстом внутри, расположенным в одну строчку.

Для бегущей строки задаётся:

  • текст
  • цвет, стиль и размер текста (цвет и стиль м.б. опущены)
  • цвет заливки
  • прозрачность заливки
  • скорость вращения (0 – стоп)

В случае, если невозможно будет избежать эффекта мерцания, в режиме вращения можно считать заливку полностью непрозрачной.

Пример бегущей строки с новостями:

{{Image("String.jpg","width=400px")}}

Пример бегущей строки в состоянии STOP:

{{Image("String2.jpg","width=400px")}}

REQ-69:

Текстовое окно с прокруткой представляет собой прямоугольное окно с текстом внутри, расположенным в несколько строк.

Для текстового окна задаётся:

  • текст
  • цвет, стиль и размер текста (цвет и стиль м.б. опущены)
  • цвет заливки
  • прозрачность заливки
  • скорость вращения (0 – стоп, >0 – снизу вверх, <0 – сверху вниз)

В случае, если невозможно будет избежать эффекта мерцания, в режиме вращения можно считать заливку полностью непрозрачной.

REQ-70:

Прямоугольный прогресс-индикатор представляет собой прямоугольное окно, состоящее из 2 половин, залитых разным цветом. Поверх индикатора может выводиться число: (текущее значение) или (максимальное значение — текущее значение).

Для прямоугольного прогресс-индикатора задаётся:

* вид : горизонтальный или вертикальный

* цвета заливки

* неактивный

* активный

* после порога завершения

* после критического порога

* цвет рамочки

* рамочка : ВКЛ/ВЫКЛ

* заливка

* признак: картинка или фон

* название картинки JPG

* цвет и прозрачность фона

* частота BLINKING в 1/2 сек (0 – ВЫКЛ)

* выводимое значение

* цвет, стиль и размер текста (цвет и стиль м.б. опущены)

* вид выводимого значения : прямое, обратное

* формат выводимого значения: N, ММ:СС, ЧЧ:ММ:СС

* место выводимого значения

Формат вывода числа может быть либо в виде целого значения, либо в виде времени ЧЧ:ММ:СС или ММ:СС.

{{Image("ProgR1.jpg","width=400px")}}

При достижении порога завершения цвет заливки меняется на FINALIZE_COLOR, а при достижении критического порога заливка индикатора сбрасывается, а окно индикатора вырождается в набор прямоугольников, число которых равно числу оставшихся до конца шагов. Эти прямоугольники закрашиваются по-очереди цветом CRITICAL_COLOR (аналог стрелочки на круглом прогресс-индикаторе).

{{Image("ProgR2.jpg","width=400px")}}

REQ-71:

Круглый прогресс-индикатор представляет собой круг, состоящий из 2 половин, залитых разным цветом. Поверх индикатора может выводиться число: (текущее значение) или (максимальное значение — текущее значение).

Для круглого прогресс-индикатора задаётся:

* цвета заливки

* неактивный

* активный

* после порога завершения

* после критического порога

* цвет рамочки

* рамочка : ВКЛ/ВЫКЛ

* заливка

* признак: картинка или фон

* название картинки JPG

* цвет и прозрачность фона

* частота BLINKING в 1/2 сек (0 – ВЫКЛ)

* выводимое значение

* цвет, стиль и размер текста (цвет и стиль м.б. опущены)

* вид выводимого значения : прямое, обратное

* формат выводимого значения: N, ММ:СС, ЧЧ:ММ:СС

* место выводимого значения

Формат вывода числа может быть либо в виде целого значения, либо в виде времени ЧЧ:ММ:СС или ММ:СС.

{{Image("ProgC1.jpg","width=400px")}}

При достижении порога завершения цвет заливки меняется на FINALIZE_COLOR, а при достижении порога завершения появляется стрелочка цвета CRITICAL_COLOR.

{{Image("ProgC2.jpg","width=400px")}}

REQ-72:

Индикатор сети представляет собой контрол типа транспарант. И для него задаются такие же параметры.

REQ-73:

Календарь представляет собой контрол типа бегущая строка в состоянии СТОП. Для него задаются такие же параметры плюс:

  • формат даты
REQ-74:

Индикатор уровня представляет собой прямоугольное окно, состоящее из трёх областей:

  • области меток
  • области штрихов
  • и области сегментов

Все 3 области заливаются одним и тем же цветом PANEL_COLOR с одинаковой прозрачностью PANEL_TRANSPARENCY. В качестве подложки индикатора уровня может использоваться картинка JPG, в этом случае панели считаются полностью прозрачными. Область сегментов состоит из нескольких одинаковых прямоугольных сегментов, следующих один за другим, возможно имеющих рамку и залитых разными цветами. Каждый сегмент имеет два состояния — подсвеченный и неподсвеченный. В подсвеченном состоянии сегмент заполняется своим цветом, в неподсвеченном — заполняется цветом BACKGROUND_COLOR c прозрачностью BACRGROUND_TRANSPARENCY. Для каждого сегмента задаётся:

  • SEGMENT_LEVEL - уровень сигнала для сегмента в дБ (float)
  • SEGMENT_LINE - признак, показывающий рисовать штрих для данного сегмента или нет
  • SEGMENT_LABEL – метка, которая выводится напротив данного сегмента (может быть пустая)

Для индикатора уровня задаются:

* вид : вертикальный или горизонтальный

* общее число сегментов

* COLORSET - раскраска индикатора, представляющая собой список типа:

* FILL_COLOR - цвет заполнения сегментов во включенном состоянии

* AREA_START - индекс первого сегмента, заполненного этим цветом

* AREA_END - индекс последнего сегмента, заполненного этим цветом

* PANEL_COLOR

* PANEL_TRANSPARENCY

* BACKGROUND_COLOR

* BACKGROUND_TRANSPARENCY

* информация о панели LABEL

* LABEL_SIDE - признак, с какой стороны от области сегментов расположены штрихи и надписи (Справа/Слева? или Сверху/Снизу?).

* LABEL_VISIBLE - признак, показывающий, выводить панель меток или нет

* LABEL_WIDTH - ширина области меток

* FONT_STYLE - цвет, стиль и размер шрифта (цвет и стиль м.б. опущены)

* информация о панели штрихов

* LINE_VISIBLE - признак, показывающий, выводить панель штрихов или нет

* LINE_WIDTH - ширина области штрихов

* LINE_HEIGHT – толщина штриха в пикселах

* LINE_COLOR – цвет штрихов

* информация о панели сегментов

* SEGMENT_WIDTH - ширина области сегментов

* SEGMENT_BORDER - признак, показывающий, нужно ли рисовать рамку вокруг каждого сегмента, толщина и цвет рамки вокруг сегмента

* SEGMENT_LIST - список сегментов с признаками: SEGMENT_LEVEL, SEGMENT_LINE, SEGMENT_LABEL

{{Image("Ind1.jpg","width=400px")}}

По команде:

  • УСТАНОВИТЬ ТЕКУЩЕЕ ЗНАЧЕНИЕ сегменты от начала до указанного по индексу заливаются каждый своим цветом, а остальные сегменты - цветом BACKGROUND_COLOR с BACKGROUND_TRANSPARENCY.
  • УСТАНОВИТЬ ТЕКУЩИЙ УРОВЕНЬ все сегменты от начала до первого сегмента, имеющего SEGMENT_LEVEL больший или равный , включительно заливаются каждый своим цветом, а остальные сегменты - цветом BACKGROUND_COLOR с BACKGROUND_TRANSPARENCY.
  • УСТАНОВИТЬ ПИК ПО ЗНАЧЕНИЮ сегмент с номером зажигается своим цветом.
  • УСТАНОВИТЬ ПИК ПО УРОВНЮ первый сегмент, имеющий SEGMENT_LEVEL больший или равный , зажигается своим цветом.
  • ПОГАСИТЬ ПИК текущий пик заливается цветом BACKGROND_COLOR с BACKGROUND_TRANSPARENCY.

При пропадании сетевого соединения с сервером (когда индикатор сети загорается) все сегменты заливаются цветом BACKGROUND_COLOR c BACKGROUND_TRANSPARENCY.

Установочный интерфейс часовой машины
h6. REQ-85:

Для входа в интерфейс установки пользователь должен ввести URL часовой машины в поле адреса Web Browser-а. После этого открывается страница входа, на которой пользователь может выбрать язык, на котором будет вестись диалог, и где он должен ввести логин и пароль для входа.

{{Image("WebUILogin.jpg","width=600px")}}

Здесь же можно произвести возврат к установкам, которые были установлены по умолчанию при поставке часовой машины.

REQ-86:

Основным окном интерфейса является окно общих настроек. В этом окне пользователь может настроить:

  • Имя машины в сети CapsClock - это имя машины, по которому к нему будут обращаться другие компоненты CapsClock. Оно отлично от системного сетевого имени машины.
  • URL сервера NTP - IP адрес или сетевое имя машины, от которой будет производиться синхронизации времени в сети CapsClock.
  • Сервер CApsClock - это сервер CapsClock, который будет непосредственно взаимодействовать с часовой машиной. Для него Можно задать либо IP адрес (сетевое имя), тогда общение будет вестись непосредственно по этому адресу, либо имя сервера в сети CapsClock (для одноранговой сети), тогда IP адрес сервера будет определяться автоматически.
  • Порт протокола CCP - номер порта на сервере, к которому будет пытаться приконнектиться часовая машина, и по которому будут передаваться команды управления от сервера.
  • PING интервал - интервал времени (в секундах), через который часовая машина будет пытаться установить соединение с сервером.
  • Текущая конфигурация - имя текущей конфигурации часовой машины, которая будет использоваться для отображения информации.

{{Image("WebUISet.jpg","width=600px")}}

Все изменения вступают в силу по нажатию на кнопку "Применить". Пользователь может также перейти на страничку смены пароля по нажатию на кнопку "Сменить пароль" или на страничку файлового менеджера по нажатию на кнопку "Удалить/Загрузить файлы". Здесь же можно произвести возврат к установкам, которые были установлены по умолчанию при поставке компоненты.

REQ-87:

Пользователь может сменить пароль для входа в установочный интерфейс и пароль FTP. Для смены пароля он должен выбрать тип учётной записи:

  • FTP
  • Web UI

После этого он может ввести новый логин и пароль для этой учётной записи. Изменения вступают в силу после нажатия кнопки "Применить".

{{Image("WebUIPwd.jpg","width=600px")}}

Отсюда пользователь может также перейти на страничку общих настроек по нажатию на кнопку "Общие настройки" или на страничку файлового менеджера по нажатию на кнопку "Удалить/Загрузить файлы". Здесь же можно произвести возврат к установкам, которые были установлены по умолчанию при поставке часовой машины.

REQ-88:

Пользователь может производить различные действия над файлами, принадлежащими системе CapsClock. Для этого он должен выбрать из списка файл, над которым он хочет произвести какие-то действия. Затем он выбирает тип операции, которую необходимо произвести:

  • Удалить файл
  • Скачать файл
  • Копировать файл
  • Переименовать файл

Для выполнения последних двух операций он должен также ввести новое имя файла. Затем при нажатии на кнопку "Выполнить" система выполняет указанные действия и сообщает пользователю статус выполнения операции.

{{Image("WebUIFile.jpg","width=600px")}}

Пользователь может также загрузить файл со своего компьютера на часовую машину. Для этого ему нужно выбрать файл на своём компьютере при помощи кнопки "Выбрать…" и нажать кнопку "Загрузить". При этом система начинает загрузку файла на часовую машину. По окончании загрузки система сообщает пользователю о статусе операции.

После этого пользователь может настроить политику ведения журнала системы. Для этого ему надо ввести:

  • максимальную длину файла журнала, по достижении которой журнал закрывается и открывается новый
  • или количество суток, по истечении которых журнал закрывается и открывается новый

Значение 0 означает, что журнал не ведётся. При этом следует указать, как поступать со старым журналом:

  • Удалять старый журнал
  • Сохранять старый журнал (для последующего удаления вручную)

Изменения вступают в силу после нажатия кнопки "Применить".

Отсюда пользователь может также перейти на страничку общих настроек по нажатию на кнопку "Общие настройки" или на страничку смены пароля по нажатию на кнопку "Сменить пароль". Здесь же можно произвести возврат к установкам, которые были установлены по умолчанию при поставке часовой машины.

Интерфейс администрирования компоненты на MS Windows
h3. Интерфейс с аппаратным обеспечением
h6. REQ-75:

Система поддерживает связь с устройствами GPI, подключенными к USB через устройство ТР-312/314, с помощью приёма/передачи данных по виртуальному COM-порту.

REQ-76:

Протокол обмена по виртуальному COM-порту представлен в документе [TP312_protokol.xls].

REQ-77:

Реакция системы на поступающие данные должна быть описана в файле конфигурации сигналов от HW.

Интерфейс передачи данных
h6. REQ-78:

Передача данных между компонентами системы и внешними прикладными программами осуществляется через Ethernet по протоколу TCP/IP в формате ENMP (Extended Network Message Protocol).

REQ-79:

При установке соединения между системой и прикладной программой ответственным за разрыв соединения является инициатор соединения.

REQ-80:

Протокол ENMP должен представлять собой протокол обмена пакетами в формате XML.

REQ-81:

Обмен по птротоколу ENMP выглядит следующим образом:

  1. Инициатор устанавливает соединение.
  2. Далее инициатор шлёт ENMP пакеты, вставляя уникальный идентификатор для каждого пакета.
  3. Если идентификатор опущен, то ответ инициатору не пересылается, пересылается только код ошибки.
  4. При ответе отвечающая сторона возвращает пакет ENMP с идентификатором пакета, полученным от инициатора.
  5. При подключении к потоку данных инициатор шлёт запрос на подключение к потоку данных.
  6. Отвечающая сторона присылает в ответ код ошибки или параметры потока.
  7. Если нужные параметры есть, то инициатор передаёт в ответ ссобщение с выбранными параметрами и подключает поток данных.
  8. Далее поток передаётся системе до момента окончания.
  9. По окончании передачи инициатор шлёт запрос на отключение потока.
  10. Отвечающая сторона подтверждает отключение, а инициатор отключает поток.
REQ-82:

Описание протокола ENMP приводится здесь в виде псевдокода. В общем случае пересылаемая команда может иметь вид:

enm RID=NNNN>

command>ИМЯ_КОМАНДЫ
parameter name=ИМЯ_ПАРАМЕТРА>ЗНАЧЕНИЕ_ПАРАМЕТРА
parameter>

/parameter>
/enm>

Rаждая команда может быть одного из двух типов:

  • REQUEST (RQ) – при запросе на выполнение
  • RESPONSE (RS) – при ответе на запрос или при реакции на событие

Каждый запрос имеет свой уникальный RID (Request ID), который передаётся назад в RESPONSE при ответе.

RQ.RESET

Команда предназначена для сброса компоненты в исходное состояние. Аналогично RESTARTу сервиса на локальном компьютере.
Параметры :
Нет.
Пример :
RESET

RQ.GETLIST

Команда предназначена для запроса от компоненты системы информации о подключенных к системе компонентах, о доступных макросах и обработчиках USB сигналов.
Параметры :
TYPE - тип списка:

  • CLOCK_TYPE - для получения списка подключенных часовых машин.
  • SERVER_TYPE - для получения списка подключенных серверов
  • MACRO_TYPE – для получения списка макросов, доступных для вызова
  • SIGNAL_TYPE – для получения списка HW сигналов с обработчиками

FILTER – состояние машин:

  • CONNECTED – подключенные в настоящее время
  • DISCONNECTED – внесённые в список, но неподключенные в настоящее время
  • ALL – все внесённые в список

Пример :

GETLIST CLOCK_TYPE CONNECTED

RS.LIST

Команда предназначена для передачи приложению информации о подключенных к системе компонентах, о доступных макросах и обработчиках USB сигналов.
Параметры :
ID – ID компоненты.
TYPE - тип списка:

  • CLOCK_TYPE - для передачи списка подключенных часовых машин.
  • SERVER_TYPE - для передачи списка подключенных серверов
  • MACRO_TYPE – для передачи списка макросов, доступных для вызова
  • SIGNAL_TYPE – для передачи списка HW сигналов с обработчиками

LIST - список подключенных компонент. Может быть CLOCK_LIST, SERVER_LIST, MACRO_LIST или SIGNAL_LIST.
Пример :
LIST SRV1 CLOCK_TYPE CLK1 "Часы в студии" ON, CLK2 "Часы операторы" OFF, CLK3 "Дисплей главного инженера" ON

RQ.SETCDSLIST

Команда предназначена для изменения списка часовых машин в системе.
Параметры :
COMMAND – команда обработки списка:

  • ADD – список добавляется к текущему списку
  • DELETE – машины удаляются из текущего списка
  • SET – текущий список на сервере удаляется и заменяется на новый

CLOCK_LIST – список часовых машин.
Пример :
SETCDSLIST DELETE CLK1, CLK4, CLK8

RQ.SETMACRO

Команда предназначена для работы с макрореестром.
Параметры :
COMMAND – команда обработки:

* ADD – добавить макрос

* DELETE – удалить макрос

* SET – заменить макрос

* MACRO – макрос:

* NAME – имя макроса

* BODY – тело макроса (может быть опущено для команды DELETE)

* Краткое текстовое описание (может отсутствовать)
Пример :
SETMACRO ADD TurnMIC TurnMIC….

RQ.SETSIGNAL

Команда предназначена для работы с обработчиками сигналов на CCS.
Параметры :
COMMAND – команда обработки:

* ADD – добавить обработчик

* DELETE – удалить обработчик

* SET – заменить обработчик

* SIGNAL – обработчик:

* ID сигнала

* Тип сигнала: HWSIGNAL, ENMPNOTIFY, CCPNOTIFY, ENMPERROR или CCPERROR.

* Наличие данных для проверки: есть | нет

* Данные (если есть)

* Вызов макроса при срабатывании (м.б. опущено для команды DELETE)

* Краткое текстовое описание (м.б. опущено)
Пример :
SETSIGNAL ADD KEY_1 DATA_TYPE 0xFF … "Включить транспарант MIC"

RQ.CALLMACRO

Команда предназначена для запроса выполнения макроса сервером CCS.
Параметры :
CALL – вызов макроса:

  • NAME – имя макроса
  • PARAMS – параметры вызова (м.б. опущены)
    Пример :
    CALLMACRO TurnMIC State=ON

RQ.SETSTREAM

Команда предназначена для запроса на подключение потока.
Параметры :
ID - идентификатор часовой машины
ControlID - идентификатор потокового контрола

Пример :*
SETSTREAM CLK_1 IND1_LEFT

RS.STREAM

Команда предназначена для возврата данных о потоковом контроле.
Параметры:
CONNECT - параметры соединения (например, номер порта и IP)
STREAM_LIST - список параметров потока:

* ID - идентификатор набора

* NUM_WORDS - длина пакета в потоке (в словах) (0 - поток неизвестной структуры)

* WORDS_DESCR - список описания слов

* WORD_ID - значение слова
Пример :
STREAM 192.168.65.135:427 STLEVEL 1 LEVEL, STLEVELPIK 2 LEVEL PICK

RQ.CONNECTSTREAM

Команда предназначена для подключения к потоку с выбранными параметрами.
Параметры :
ID - идентификатор часовой машины
ControlID - идентификатор потокового контрола
SetID - идентификатор набора параметров

Пример :*
CONNECTSTREAM CLK_1 IND1_LEFT STLEVELPIK

RQ.DISCONNECTSTREAM

Команда предназначена для запроса на отключение потока.
Параметры :
ID - идентификатор часовой машины
ControlID - идентификатор потокового контрола
Пример :
DISCONNECTSTREAM CLK_1 IND1_LEFT

RS.ERROR

Команда предназначена для передачи информации об ошибке в ответ на какой-либо запрос.
Параметры :
ID - идентификатор часовой машины или сервера.
ERROR_ID - идентификатор ошибки.
DESCRIPTION – дополнительная информация.
Пример :
ERROR SRV1 NOT_SUPPORTED "Машина не входит в список подключенных"
ERROR SRV1 OK
ERROR SRV1 WRONG_PARAMETER "Неверное имя параметра TEXT для контрола CLOCK1"

Список CLOCK_LIST

Список подключенных к системе ЧМ:

* Записи о ЧМ:

* ID ЧМ IP ЧМ (если есть)

* Состояние : CONNECTED | DISCONNECTED

* Краткое текстовое описание (может отсутствовать)

Список SERVER_LIST

Список подключенных к системе серверов:

* Записи о серверах:

* ID сервера IP сервера (возможно)

* Краткое текстовое описание

Список MACRO_LIST

Список макросов :

* Записи о макросах:

* Имя макроса

* Параметры (могут отсутствовать):

* Имя параметра

* Тип параметра

* Тело макроса

* Краткое текстовое описание

Список SIGNAL_LIST

Список сигналов с обработчиками:

* Записи об обработчиках:

* ID сигнала

* Тип сигнала: HWSIGNAL, ENMPNOTIFY, CCPNOTIFY, ENMPERROR или CCPERROR.

* Наличие данных для проверки: есть | нет

* Данные (если есть)

* Вызов макроса при срабатывании (м.б. опущено для команды DELETE)

* Краткое текстовое описание (м.б. опущено)

Другие нефункциональные требования
h3. Требования к производительности
h6. REQ-83:

Система должна обеспечивать отображение всех оперативных изменений без задержки и накопления очередий пакетов ENMP.

Требования по надёжности
h3. Требования по безопасности
h3. Требования по качеству
h2. Другие требования
h6. REQ-83:

Весь пользовательский интерфейс должен обеспечивать возможность локализации без изменения кода и пересборки компонентов системы.

REQ-84:

В целях обеспечения лёгкости локализации все текстовые данные должны быть представлены в Unicode UTF-8.

Приложение 1: Словарь терминов
h2. Приложение 2: Анализируемые модели

Add picture from clipboard (Maximum size: 742 MB)