Техническое задание. Этап 2¶
| ТЗ "Caps-Clock" |
| Техническое задание |
| Этап 2 |
| 2/10/2009 |
| Техническое задание на создание системы «Caps-Clock». Содержит неформализованные требования и пожелания по работе системы Часофикации. |
Добавление функциональности¶
1. Установка времени запуска на таймерах по внутренним часам машины. Если время запуска прошло, но период таймера не закончился, то текущее значение таймера устанавливается на время, прошедшее с начала момента запуска.
2. Связывание часов и таймера. В этом случае таймер становится циклическим, значения порогов соответствуют порогам часов, период таймера соответствует длине сектора, время запуска таймера выравнивается на начало часа (как секторы в часах).
3. Макросы для работы с сетевыми сообщениями. Пока можно без редактора макросов, а просто прописывать их в XML. Например, какая-то прикладная программа посылает какой-то текст по сети на какой-то порт SCS (типа NETSEND), SCS принимает сообщение. Если в ХML есть команда, соответствующая такому сообщению, то она отправляется на часовую машину. Если нет, то сообщение игнорируется. Для чего нужно: чтобы из различных вещательных программ, работающих с оборудованием, можно было посылать сигнал по тому или иному событию (не всегда можно вынести это железо на сухие контакты).
Интерфейс с пользователем¶
Для управления контролами сначала выбирается часовая машина из списка доступных часовых машин. Затем выбирается одна из закладок с соответствующим типом контролов.
Управление часами¶
Сначала выбираются часы из списка доступных на данной часовой машине. При этом из текущих настроек автоматически заполняются поля:
- тип часов (мнемонические/стрелочные)
- смещение отображаемого времени относительно часов машины
- длительность цикла (длина сектора)
- порог завершения и критический порог
Пользователь может поменять эти значения и нажать кнопку «Установить» для установки этих параметров или «Сбросить» для установки параметров из локального XML часовой машины. Если нажать на кнопку «Сохранить», то текущие установки часов сохраняются в локальном XML файле на часовой машине. (Т.е. после этой операции нажатие на кнопку сброс будет вызывать возврат именно к этой конфигурации).
Управление таймерами¶
Управление круглыми и прямоугольными таймерами слегка отличается. Для установки таймера его сначала нужно выбрать из списка таймеров такого типа на данной часовой машине. При этом автоматически заполняются поля из текущих настроек:
- привязка к часам (если не привязан, то «нет»)
- в случае привязки к часам дополнительно отображается время цикла (дублирует «Длительность» и не редактируется)
- порог завершения и критический порог
- тип отображения отсчёта (прямой или обратный)
- длительность таймера
- время запуска таймера
- тип запуска (запускается в указанное время или вручную)
- для прямоугольного таймера дополнительно выводится его ориентация
Для привязки таймера к часам начала нужно выбрать часы из списка доступных часов на данной часовой машине. После выбора осуществляется заполнение соответствующих полей из настроек выбранных часов. При этом включается обратный отсчёт, а остальные органы управления блокируются, за исключением кнопок «Установить», «Сбросить» и «Сохранить», которые работают так же, как и в часах.
Чтобы перевести таймер в автономный режим, нужно из списка часов выбрать опцию «нет». В этом случае органы управления разблокируются, а поля заполняются из локального XML.
Если нажать на маленькую кнопку в правом верхнем углу панели «Оперативный таймер», то эта панель открывается отдельно в инструментальном всплывающем окошке с названием таймера и часовой машины в строке заголовка. Она всегда отображается поверх других окон.
При нажатии на кнопку «Старт» таймер запускается, даже если он должен запускаться по времени, отрабатывает один цикл и останавливается. При нажатии на кнопку «Пауза» таймер приостанавливается. При нажатии на кнопку «сброс» таймер сбрасывается в начальное значение.
Для прямоугольного таймера дополнительно можно задать его ориентацию с помощью выбора одной из круглых кнопок.
Управление бегущей строкой¶
Сначала выбирается бегущая строка из списка доступных на данной часовой машине. При этом из текущих настроек автоматически заполняются поля:
- размер шрифта
- рассчитывается число символов в строке
- скорость вращения
- отображаемый текст
- включено ли вращение в данный момент
Текст, который нужно ввести, можно прочитать из файла TXT в «Текст для вывода» при помощи кнопки «Читать из файла», либо ввести вручную, либо скопировать из клипборда. При вводе текста в окно с начала текста выделяется число символов, которое помещается в строку на часовой машине (N). При нажатии на кнопку «Отправить» выделенный текст отправляется на часовую машину, а в окне помечаются следующие N символов. Выделение можно изменить при помощи мыши, но если вращение текста не включено, то по окончании выделения выделяется только первые
N символов.
Панель «Оперативный ввод» можно открыть в отдельном окне аналогично панели «Оперативный таймер».
Кнопки «Установить», «Сбросить» и «Сохранить» работают так же, как и в часах.
Управление текстовым окном¶
Управление текстовым окном работает аналогично управлению бегущей строкой, за исключением того, что расчёт должен производиться с учётом того, что текст помещается в несколько строк. Слова в строке должны помещаться целиком (т.е. слова на части не разбиваем для простоты).