Приложение 5: Модели контролов часовой машины¶
- Table of contents
- Приложение 5: Модели контролов часовой машины
Общие сведения¶
Контрол представляет собой орган отображения той или иной информации, изображение которого выодится на экране часовой машины. Контрол представляет собой прямоугольную область экрана, которая в общем случае характеризуется набором обязательных параметров, набором параметров, специфических для данного контрола, и диаграммой состояний контрола.
Виды контролов¶
В данной версии часовой машины поддерживаются следующие виды контролов:
- BACK - фон, подложка, корневой контрол CDS, поверх которого располагаются все остальные контролы.
- CLOCK - часы. Могут быть мнемоническими или стрелочными.
- PROGRESS - прогресс-индикатор, круглый или прямоугольный.
- TIMER - разновидность прогресс-индикатора, в качестве внешних сигналов использующая таймер.
- TRANSPARENCY - транспарант. Индикатор некоторой геометрической формы, содержащий текст или изображение.
- CONNECTION - вид транспаранта, который в качестве внешнего сигнала использует факт наличия или отсутствия какого-либо сетевого соединения.
- CALENDAR - текстовая строка, отображающая текущую дату.
- MARQUEE - бегущая строка. В режиме "СТОП" может использоваться просто в качестве надписи.
- TEXT - текстовое окно с прокруткой. В режиме "СТОП" поддерживает страничную организацию.
- TABLE - таблица. Представляет собой окно из упорядоченного набора бегущих строк в состоянии СТОП.
- LEVEL - индикатор уровня.
- MEDIA - проигрыватель мультимедиа.
В дальнейшем набор контролов может расширяться. При этом новые контролы должны поддерживать обязательные параметры и состояния.
Базовый контрол¶
Базовый контрол представляет собой ядро, которое реализует контрол любого типа, общую функциональность. Изображение любого контрола состоит из 5 условных слоёв:
{{Image("Control.jpg","width=300px")}}
- Маска - монохромный слой, по которому отрезается всё остальное изображение. Если маска не указана, то она считается полной.
- Заливка - заливка заданным цветом с заданной прозрачностью.
- Фоновая картинка - она растягивается на всю клиентскую область контрола и обрезается по маске. Поэтому при наличии картинки слой заливки полностью перекрывается картинкой.
- Графика - в этом слое прорисовывается вся динамическая гравфика контрола, за исключением текста.
- Текст - весь текст, который выводится внутри контрола должен быть виден. Поэтому он выводится в самом верхнем слое и накладывается на все остальные слои сверху.
Свойства¶
- x, y - координаты левого верхнего угла контрола в процентах относительно ообщего размера экрана.
- width, height - размеры контрола также указываются в процентах относительно размера экрана.
- visible - признак видимости/невидимости контрола. Если visible=FALSE, то контрол не показывается на экране.
- mask - имя монохромного изображения, содержащего маску. Если этот параметр опущен, то считается, что маска полностью покрывает контрол.
- picture - имя файла с фоновой картинкой. Если опущено, то считается, что картинки нет.
- color - цвет и прозрачность заливки.
- state - текущее состояние контрола. По умолчанию устанавливается в default - сосотояние, которое обязательно имеется у каждого контрола.
- streamable - признак, показывающий, поддерживает данный контрол поточные данные или нет.
Все эти свойства описывают статические свойства контрола. Т.е. те, которые изменяются довольно редко. Вообще все свойства - и эти, и дополнительные - делятся на 2 группы: статические и динамические. Статические определяют статическое изображение контрола, которое меняется редко.
Статическое изображение является комбинацией попадающей в клиентскую область контрола части экрана и отрисовкой статических свойств контрола. Оно хранится в отдельном буфере и используется для формирования текущего изображения, при этом динамические свойства прорисовываются поверх этого буфера. Изменение же статических свойств вызывает сначала перерисовку статического буфера, а затем прорисовку динамических свойств, т.е. это более длительная операция по сравнению с изменением динамических свойств.
Методы¶
- !SetPosition(X,Y) - переместить левый верхний угол контрола в точку с координатами X, Y в процентах относительно клиентской части родительского контрола.
- !GetPosition(*X, *Y) - получиить координаты левого верхнего угла контрола в процентах относительно клиентской части родительского контрола.
- !SetSize(Width, Height) - установить размеры контрола в процентах относительно размера клиентской части родительского контрола.
- !GetSize(*Width, *Height) - получить размеры контрола в процентах относительно размера клиентской части родительского контрола.
- !SetVisible(State) - сделать контрол видимым (StateTRUE) или невидимым (StateFALSE).
- !IsVisible() - возвращает признак видимости контрола.
- !SetMask(Name) - загружает маску контрола из файла с именем Name. При указании пустого имени маска считается полностью прозрачной.
- !GetMask() - возвращает имя файла текущей маски.
- !SetPicture(Name) - загружает фоновую картинку из файла с именем Name. При указании пустого имени картинка отключается.
- !GetPicture() - возвращает имя файла фоновой картинки.
- !SetBackColor(Color, Transparency) - устанавливает цвет и прозрачность фоновой заливки.
- !GetBackColor(*Color, *Transparency) - возвращает цвет и прозрачность фоновой заливки.
- !SetState(Name) - устанавливает текущее состояние. При указании пустого имени устанавливается состояние по умолчанию.
- !GetState() - возвращает текущее состояние контррола.
- !IsStreamable() - возвращает признак, поддерживает данный контрол поточные данные или нет.
- !SetProperty(Name, Value) - устанавливает значение свойства контрола в текущее состояние.
- !GetProperty(*Name,*Value) - возвращает свойство контрола их текущего состояния.
- !SetStateProperty(State, Name, Value) - устанавливает свойство для указанного состояния. Если состояние не указано, то меняет свойство в текущем состоянии (вырождается в SetProperty).
- !GetStateProperty(State, Name, *Value) - возвращает свойство для указанного состояния. Если состояние не указано, то возвращает свойство из текущего состояния (вырождается в GetProperty).
BACK¶
Контрол типа BACK является корневым и элементом дерева контролов. Он занимает собой всю видимую область экрана, а остальные контролы рисуются поверх него. Для него указывается 2 обязательных свойства: picture (фоновая картинка) и deffont (шрифт по умолчанию). Его левый верхний угол всегда находится в 0,0, а длина и ширина всегда 100.0%. Цвет заливки не указывается, поскольку он всегда покрывается картинкой, а маска всегда считается равной размеру экрана. Этот контрол всегда видим и не поддерживает потоковой передачи данных. Замена картинки или шрифта по умолчанию вызывает полную перерерисрвку всех контролов часовой машины.
CLOCK¶
Часы представляют собой циферблат с поминутной разметкой. Время на часах может отображаться с помощью стрелок или подсветкой минутных меток. Может также включаться цифровое табло с текущим временем. Во время работы часы получают текущее время от системного таймера и формируют изображение.
Часы получают текущее время от таймера машины и добавляют к нему заданное смещение Delta. Когда минутная стрелка или минутная метка находится внутри сектора, сектор считается текущим. Когда она внутри сектора переходит за один из порогов, меняется внешний вид часов в соответствии с описанием текущего состояния и может инициироваться отсылка сообщения типа NOTIFY. При выходе минутной метки/стрелки из сектора меняется внешний вид часов, также в соответствии с описанием текущего состояния, и текущим становится другой сектор. Если установлен будильник, то при достижении этого времени (с учётом смещения) инициируется отсылка сообщения типа CCP NOTIFY. При изменении времени таймера машины (например, при синхронизации от сервера NTP), часы автоматически переводятся на это новое время. Если к часам привязан какой-либо таймер, то в момент привязки часы передают таймеру значения порогов, длительность цикла и текущее значение внутри цикла, а сам таймер отключается от системного таймера. Далее по каждому изменению времени часы передают привязанному таймеру текущее значение времени внутри цикла.
Свойства¶
- Cx, Cy - центр часов в процентах относительно левого верхнего угла клиентской части контрола.
- Delta - смещение в минутах относительно таймера машины, которое может быть как положительным, так и отрицательным.
- Cycle number - число циклов (от 1 до 12).
- Finalize threshold - порог завершения в секундах до окончания цикла. 0 - отключен.
- Critical threshold - критический порог в секундах до окончания цикла. Всегда меньше порога завершения. 0 - отключен.
- Finalize notification - признак, нужна ли генерация события при прохождении порога завершения.
- Critical notification - признак, нужна ли генерация события при прохождении критического порога.
- Alarm - время срабатывания будильника (ЧЧ:ММ:CC). FF:FF:FF - отключен.
- Link - идентификатор привязанного таймера, если есть.
- State HANDS - состояние аналоговых часов со стрелками, одновременно является состоянием по умолчанию.
- State MNEMONIC - состояние мнемонических часов.
- могут описываться дополнительные состояния, которые являются комбинацией различных параметров.
Описание состояния содержит:
* Display - описание вида цифрового табло:
* Visible - признак, показывающий включено табло или отключено. Если отключено, то остальные параметры можно опустить.
* X, Y - место вывода центра табло в процентах относительно центра часов.
* Format - формат вывода времени: ЧЧ:ММ:СС или ЧЧ:ММ или ММ:СС или ЧЧ:ММ/СС.
* Font - описание типа шрифта по умолчанию (если опущено, используется шрифт по умолчанию контрола BACK):
* Name - название шрифта
* Typeface - тип шрифта
* Size - размер шрифта
* Color - цвет шрифта
* Finalize font - описание шрифта после прохождения порога завершения. Если опущено, то шрифт не меняется.
* Critical font - описание шрифта после прохождения критического порога. Если опущено, то шрифт не меняется.
* Hands - описание стрелок:
* Visible - признак, показывающий, видны стрелки или нет. Если не видны, то остальные параметры можно опустить.
* Hour - описание часовой стрелки:
* Shape - форма стрелки
* Axis - местоположение оси вращения в процентах относительно нижнего края стрелки
* Color - цвет и прозрачность стрелки по умолчанию.
* Finalize color - цвет и прозрачность стрелки после прохождения порога завершения. Если опущено, то цвет не меняется.
* Critical color - цвет и прозрачность стрелки после прохождения критического порога. Если опущено, то цвет не меняется.
* Minute - описание минутной стрелки.
* Second - описание секундной стрелки.
* Labels - описание мнемонических меток:
* Visible - признак, показывающий, видны метки или нет. Если не видны, то остальные параметры можно опустить.
* Minutes - описание минутных меток:
* Distance - расстояние от центра часов до дальнего края метки в процентах.
* Inactive - описание неактивных меток:
* Size - диаметр метки в процентах относительно минимального размера клиентской части контрола.
* Color - цвет метки
* Active - описание активной метки до порога завершения.
* Finalize - описание активной метки после порога завершения. Если опущено, то цвет не меняется.
* Critical - описание активной метки после критического порога. Если опущено, то цвет не меняется.
* 5 Minutes - описание 5-минутных меток. Если опущено, то 5-минутные метки изображаются как минутные.
* 15 Minutes - описание 15-минутных меток. Если опущено, то 15-минутные метки изображаются как 5-минутные.
* Strokes - описание штрихов:
* Visible - признак, показывающий, видны штрихи или нет. Если не видны, то остальные параметры можно опустить.
* Minutes - описание минутных штрихов:
* Distance - расстояние от центра часов до дальнего края штриха в процентах.
* Size - длина штриха в процентах относительно клиентской части контрола.
* Thickness - толщина штриха в пикселах.
* Color - цвет штриха.
* 5 Minutes - описание 5-минутных штрихов. Если опущено, то 5-минутные штрихи изображаются как минутные.
* 15 Minutes - описание 15-минутных штрихов. Если опущено, то 15-минутные штрихи изображаются как 5-минутные.
* Picture - фоновая картинка. Если опущена, то остаётся текущая фоновая картинка.
* Back color - цвет и прозрачность заливки, если отсутствует фоновая картинка. Если опущено, то остаётся текущая картинка или заливка.
* Indicators - описание встроенных индикаторов:
* NTP - описание индикатора наличия NTP:
* Visible - признак, показывающий, отображается индикатор или нет. Если не отображается, то остальные параметры можно опустить.
* X,Y - координаты верхнего левого угла индикатора относительно левого верхнего угла клиентской части контрола в процентах относительно размера клиентской части.
* Width, Height - размер индикатора в процентах относительно размера клиентской части.
* Picture - имя файла с изображением индикатора. Если его нет, то в области индикатора рисуется круг.
* Color - цвет круга для случая отсутствия изображения.
* Alarm - описание индикатора будильника.
* Sector - описание текущего сектора:
* Visible - признак, показывающий, прорисовывается сектор или нет. Если не прорисовывается, то остальные параметры можно опустить.
* Size - радиус сектора в процентах относительно размера клиентской части контрола
* Color - цвет и прозрачность текущего сектора.
* Finalize - цвет и прозрачность сектора после порога завершения.
* Critical - цвет и прозрачность сектора после критического порога.
- Blinking - интервал мигания после критического порога в 0.5 секунды. Если 0 - то мигание отключено.
К динамическим свойствам среди этих свойств относятся описания стрелок, меток и цифрового табло. Описание идикаторов относится к статическим свойствам. Поэтому включение/выключение индикаторов вызывает полную перерисовку. Индикатор NTP загорается, когда отсутствует синхронизация по NTP, в противном случае его не видно. Индикатор Alarm загорается, если выставлен будильник. Если будильник отключен, то этого индикатора тоже не видно.
{{Image("ClockM.jpg","width=300px")}}
Пример внешнего вида часов со стрелками, штрихами, 10-минутным сектором, полностью прозрачной маской, включенным цифровым табло в формате ЧЧ:ММ:СС и включенными индикаторами NTP и Alarm:
{{Image("Clock.jpg"," width=400px")}}
Методы¶
- !SetZone(Delta) - устанавливает смещение в минутах относительно системного таймера.
- !GetZone() - возвращает смещение в минутах относительно системного таймера.
- !SetCyclesNumber(Number) - устанавливает число циклов в часе. 0 - отключает цикличность.
- !GetCyclesNumber() - возвращает число циклов в часе.
- !SetThreshold(Threshold,Value) - устанавливает значение в секундах для порога указанного типа - FINALIZE | CRITICAL.
- !GetThreshold(Threshold) - возвращает значение порога указанного типа - FINALIZE | CRITICAL.
- !SetThresholdNotification(Threshold,Value) - устанавливает признак генерации уведомления при прохождении порога указанного типа - FINALIZE | CRITICAL.
- !GetThresholdNotification(Threshold) - возвращает значение признака генерации уведомления при прохождении порога указанного типа - FINALIZE | CRITICAL.
- !SetAlarm(Time) - устанавливает будильник. При установке Time==FF.FF.FF будильник отключается.
- !GetAlarm() - возвращает время, на которое установлен будильник.
- !LinkToTimer(CID) - устанавливает соединение с таймером c идентификатором CID. В случае 0, ведомый таймер отключается.
- !GetLinkedTimer() - возвращает идентификатор ведомого таймера.
- !TimerEvent(Time) - передаёт часам текущее значение системного таймера.
PROGRESS¶
Прогресс-индикатор представляет собой прямоугольник или круг, состоящий из 2 половин, залитых разным цветом. Поверх индикатора может выводиться число: (текущее значение) или (максимальное значение — текущее значение). Индикатору задаётся минимальное значение и максимальное значение, между которыми находится текущее значение, которое может изменяться от минимума до максимума. Текущее значение устанавливается по команде извне, которая меняет значение свойства Current. Может также задаваться 2 порога: завершения и критический. При переходе через порог завершения в соответствии с описанием состояния меняется раскраска индикатора, а при переходе через критический порог меняется его вид: в круглом индикаторе появляется стрелочка, которая делает столько шагов, сколько осталось до конца цикла, а в прямоугольном появляется столько сегментов, сколько шагов осталось до конца цикла. Свойство !MasterClock может устанавливаться для подключения к ведущему контролу, например, часам. В этом случае ведущий контрол должен установить максимум и минимум прогресс-индикатора, его пороги и устанавливать в нужный момент его текущее значение.
Свойства¶
- Minimum - минимальное значение.
- Maximum - максимальное значение.
- Current - текущее значение.
- !MasterClock - идентификатор ведущего контрола.
- Reverse - признак, определяющий, какой отсчёт показывается: прямой или обратный.
- Finalize threshold - порог завершения в секундах до окончания цикла. 0 - отключен.
- Critical threshold - критический порог в секундах до окончания цикла. Всегда меньше порога завершения. 0 - отключен.
- Finalize notification - признак, нужна ли генерация события при прохождении порога завершения.
- Critical notification - признак, нужна ли генерация события при прохождении критического порога.
- State CIRCLE - состояние круглого прогресс-индикатора, одновременно является состоянием по умолчанию.
- State SQUARE - состояние прямоугольного прогресс-индикатора.
Описание состояния содержит:
* Inactive color - цвет заливки от текущего состояния до конца.
* Active color - цвет заливки от начала до текущего состояния.
* Finalize color - цвет заливки после порога завершения.
* Critical color - цвет заливки после критического порога.
* Display - описание вида цифрового табло:
* Visible - признак, показывающий включено табло или отключено. Если отключено, то остальные параметры можно опустить.
* X, Y - место вывода центра табло в процентах относительно центра индикатора.
* Format - формат вывода прогресса: NNN%, ЧЧ:ММ:СС, ММ:СС или ЧЧ:ММ/СС.
* Font - описание типа шрифта по умолчанию (если опущено, используется шрифт по умолчанию контрола BACK):
* Name - название шрифта
* Typeface - тип шрифта
* Size - размер шрифта
* Color - цвет шрифта
* Finalize font - описание шрифта после прохождения порога завершения. Если опущено, то шрифт не меняется.
* Critical font - описание шрифта после прохождения критического порога. Если опущено, то шрифт не меняется.
* Type - тип индикатора: ROUND или SQUARE.
* Border - рамка вокруг индикатора (прямоугольная или круглая, в зависимости от типа индикатора):
* Visible - признак наличия рамки. Если нет, то остальные параметры могут быть опущены.
* Color - цвет рамки.
* Thickness - толщина рамки в пикселах.
* Bricks - описание сегментов после критического порога для прямоугольного индикатора:
* Visible - признак, показывающий, нужно включать сегменты или нет. Если не нужно, то остальные параметры можно опустить.
* Border - признак, нужно ли выводить рамочку вокруг каждого сегмента.
* Space - интервал между сегментами в пикселах.
* Hand - описание стрелки для круглого индикатора:
* Visible - признак, показывающий, нужно включать стрелку или нет. Если не нужно, то остальные параметры можно опустить.
* Size - длина стрелки в процентах относительно минимального размера клиентской части.
* Axis - местоположение оси вращения в процентах относительно нижнего края стрелки
* Color - цвет и прозрачность стрелки по умолчанию.
* Thickness - толщина стрелки в пикселах.
- Picture - фоновая картинка. Если опущена, то остаётся текущая фоновая картинка.
- Blinking - интервал мигания после критического порога в 0.5 секунды. Если 0 - то мигание отключено.
{{Image("Progress.jpg","width=300px")}}
Пример круглого индикатора:
{{Image("RdProgrCrit.jpg"," width=200px")}}
Пример прямоугольного индикатора:
{{Image("SqProgrCrit.jpg"," width=400px")}}
Методы¶
- !SetRange(Min, Max) - устанавливает минимальное и максимальное значения.
- !GetRange(*Min, *Max) - возвращает минимальное и максимальное значения.
- !SetCurrent(Value) - устанавливает текущее значение.
- !GetCurrent() - возвращает текущее значение.
- !SetThreshold(Threshold,Value) - устанавливает значение в секундах для порога указанного типа - FINALIZE | CRITICAL.
- !GetThreshold(Threshold) - возвращает значение порога указанного типа - FINALIZE | CRITICAL.
- !SetThresholdNotification(Threshold,Value) - устанавливает признак генерации уведомления при прохождении порога указанного типа - FINALIZE | CRITICAL.
- !GetThresholdNotification(Threshold) - возвращает значение признака генерации уведомления при прохождении порога указанного типа - FINALIZE | CRITICAL.
- !LinkToMaster(CID) - устанавливает соединение с часами c идентификатором CID. В случае 0, отключает индикатор от ведущего контрола.
- !GetMaster() - возвращает идентификатор ведущего контрола.
- !SetReverse(Value) - устанавливает признак, какой отсчёт показывать. Если Value==TRUE, то показывается обратный отсчёт.
- !GetReverse() - возвращает тип отсчёта.
TIMER¶
Это разновидность прогресс-индикатора, которая полностью повторяет его функциональность. Дополнительно к функциональности прогресс-индикатора вводится механизм получения управляющих событий типа ChandeCurrent от системного таймера - каждую секунду текущее значение увеличивается на единицу.
Свойства¶
* !TimerOn - признак, определяющий получение событий от таймера. При установке в TRUE подключается получение событий от таймера, при FALSE получение событий от таймера замораживается.
* !CycleOn - признак, определяющи поведение таймера при достижении максимального значения. При установке в FALSE таймер останавливается, при установке в TRUE - текущее значение сбрасывается в минимум, и работа таймера продолжается.
* Autostart - время автоматического запуска таймера. Если в момент время запуска уже прошло, но период таймера ещё не закончился, то таймер запускается сразу же, а его текущее значение устанавливается на время, прошедшее со времени, когда он должен был запуститься. При установке может включаться Indicator Alarm.
* Indicators - описание встроенных индикаторов:
* Alarm - описание индикатора автостарта:
* Visible - признак, показывающий, отображается индикатор или нет. Если не отображается, то остальные параметры можно опустить.
* X,Y - координаты верхнего левого угла индикатора относительно левого верхнего угла клиентской части контрола в процентах относительно размера клиентской части.
* Width, Height - размер индикатора в процентах относительно размера клиентской части.
* Picture - имя файла с изображением индикатора. Если его нет, то в области индикатора рисуется круг.
* Color - цвет круга для случая отсутствия изображения.
Внешний вид таймера идентичен прогресс-индикатору, за исключением индикатора автостарта, который выводится между слоем картинки и прогресса:
{{Image("Timer.jpg","width=300px")}}
Методы¶
- Start() - включает таймер.
- Stop() - останавливает таймер.
- !IsRunning() - возвращает TRUE, если таймер запущен, и FALSE, если он остановлен.
- !SetAutostart(Time) - устанавливает время астоматического старта таймера. При установке Time==FF.FF.FF автостарт отключается.
- !GetAutostart() - возвращает время автоматического старта.
- !TimerEvent(Time) - передаёт индикатору текущее значение системного таймера.
- !SetCyclic(Value) - устанавливает или снимает циклический режим работы.
- !IsCyclic() - ворвщает признак циклической работы таймера.
TRANSPARENCY¶
Транспарант - это контрол некоторой геометрической формы, содержащий текст или пиктограмму. У него есть 2 состояния - включенное и выключенное, в которые он переходит по внешней команде.
Свойства¶
* View - описание формы транспаранта:
* Shape - вид фигуры:
* OVAL - круг
* RECTANGLE - прямоугольник
* TRIANGLE - треугольник
* POLYGON - произвольная фигура
* Points - координаты фигуры в парах (XX.XX,YY.YY), где каждая координата указывается в процентах относительно клиентской части контрола. Для круга эти координат выглядят несколько отлично от жругих фигур: первая пара представляет собой координаты центра круга, а вторая - два радиуса овала (для круга они одинаковы).
* !RoundedCorners - радиус скругления углов. Если 0, то углы не скругляются.
- State OFF - отключенное состояние.
- State ON - включенное состояние.
Каждое состояние имеет следующие параметры:
* Color - цвет и прозрачность заливки.
* Picture - описание пиктограммы:
* Visible - признак, показывающий, отображается пиктограмма или нет. Если не отображается, то остальные параметры можно опустить.
* X,Y - координаты верхнего левого угла пиктограммы относительно левого верхнего угла клиентской части контрола в процентах.
* Width, Height - размер в процентах относительно размера клиентской части.
* Name - имя файла с изображением.
* Text - описание текста:
* Visible - признак, показывающий нужно ли выводить текст. Если не нужно, то остальные параметры можно опустить.
* X,Y - место вывода центра левого верхнего угла текста в процентах относительно левого верхнего угла контрола.
* Text - выводимый текст.
* Font - описание шрифта:
* Name - название шрифта
* Typeface - тип шрифта
* Size - размер шрифта
* Color - цвет шрифта
* Border - рамка вокруг транспаранта:
* Visible - признак наличия рамки. Если нет, то остальные параметры могут быть опущены.
* Color - цвет рамки.
* Thickness - толщина рамки в пикселах.
- Blinking - интервал мигания (в 0.5 секунды). Если 0 - то мигание отключено.
{{Image("Trans.jpg","width=300px")}}
Пример транспарантов:
{{Image("Transp.jpg","width=400px")}}
CONNECTION¶
Это вид транспаранта, который в качестве внешнего сигнала использует факт наличия или отсутствия какого-либо сетевого соединения - сединения с сервером NTP, Caps-Clock или поточного соединения.
Свойства¶
- CID - идентификатор соединения, наличие которого контролируется. При записи 0 контрол отключается от этого соединения.
MARQUEE¶
Бегущая строка представляет собой прямоугольное окно с текстом внутри, размещённым в одну строку. В режиме она "СТОП" может использоваться просто в качестве надписи. Вращение текста осуществляется справа налево со скоростью, которая регулируется специальным свойством Scroll. Если он равен 0, то строка находится в состоянии СТОП. Внутри контрола находится буфер, в котором хранится текст. Если строка находитсяя в режиме вращения, то текст из буфера последовательно прокручивается. В состоянии СТОП строка разбивает текст на страницы в зависимости от размеров шрифта и клиентской части контрола. Внутри одной страницы содержится столько текста, сколько помещается на экране в клиентской части контрола. Навигация между страницами осуществляется по внешним командам. Строка также может подкачивать текст из потока данных, к которому подключается также по внешней команде.
Свойства¶
* Text - текстовый буфер.
* Font - описание шрифта:
* Name - название шрифта
* Typeface - тип шрифта
* Size - размер шрифта
* Color - цвет шрифта
* Border - рамка вокруг клиентской части:
* Visible - признак наличия рамки. Если нет, то остальные параметры могут быть опущены.
* Color - цвет рамки.
* Thickness - толщина рамки в пикселах.
- Blinking - интервал мигания (в 0.5 секунды). Если 0 - то мигание отключено.
- Scroll - скорость вращения строки. Если 0, то строка не вращается.
- Repeat - признак, определяющий поведение строки при достижении конца текста. Если он равен TRUE, то текст снова начинает выводиться с другой стороны клиентской части контрола. Если FALSE, то строка по окончании вывода переходит в состояние СТОП. В состоянии СТОП этот параметр игнорируется.
- SID - идентификатор потока данных, откуда будет подкачиваться текст в режиме подкачки из потока данных.
- Split - идентификатор алгоритма, с помощью которого осуществляется разбиение строки на страницы.
Пример бегущей строки:
{{Image("StrRun.jpg","width=400px")}}
Методы¶
- !SetText(Text) - засылает текст в буфер контрола.
- !GetText(*Text) - считывает текст из буфера контрола.
- !GetCurrentPage(*Text) - считывает текст текущей страницы.
- !GetPagesNumber() - возвращает число страниц.
- !GetCurrentPageNumber() - возвращает номер текущей страницы.
- !SetScroll(Speed) - устанавливает скорость вращения текста. При записи 0 переходит в состояние СТОП.
- !GetScroll() - возвращает скорость вращения текста.
- !IsReapeated() - возвращает признак работы контрола по концу текста. Если текст снова начинает выводиться с другой стороны контрола, то возвращается TRUE. Если вращение останавливается, то возвращается FALSE.
- !SetRepeat(Value) - устанавливает режим повторения текста, если ValueTRUE. * *!DisplayPage*(!PageNumber) - выводит на экран страницу текста с указанным номером. Если указан 0, то выводится первая страница, если FFFF - то последняя, FFF7 означает переход к следующей странице после текущей, а FFF0 - к предыдущей. * *!ConnectToStream*(SID) - подключение к потоку данных. Если SID0, то контрол отключается от потока данных. В противном случае происходит подключение, и контрол автоматически переводится в режим SCROLL.
- !ConnectedStream() - возвращает идентификатор потока данных. Если 0, то контрорл не подключен к потоку.
CALENDAR¶
Календарь представляет собой бегущую строку в состоянии СТОП, отображающую текущую дату. Для обеспечения такой функциональности календарь получает сообщения от системного таймера каждые 15 минут и проверяет установленную дату. Если дата изменилась, то меняет её отображение.
Свойства¶
- Format - формат отображения даты. Она может быть: ЧЧ.ММ.ГГГГ, ЧЧ.МММММММ.ГГГГ, ГГГГ.ММ.ЧЧ, ЧЧ.ММ, ЧЧ.ММММММММ.
- Delimiter - символ, который используется для разделения числа, месяца и года.
Пример календаря:
{{Image("StrStop.jpg","width=400px")}}
Методы¶
- !SetFormat(Format) - устанавливает формат вывода даты.
- !GetFormat() - возвращает текущий формат вывода даты.
- !SetDelimiter(Delimiter) - устанавливает символ разделения полей даты.
- !GetDelimiter() - возвращает текущий символ разделения.
TEXT¶
Текстовое окно с прокруткой представляет собой прямоугольное окно с текстом внутри, расположенным в несколько строк.
Вращение текста осуществляется снизу вверх путём задания скорости вращения. Если скорость вращения установлена в 0, то окно находится в состоянии СТОП. Внутри контрола находится буфер, в котором хранится текст. Если окно находитсяя в режиме вращения, то текст из буфера последовательно прокручивается. В состоянии СТОП окно разбивает текст на страницы в зависимости от размеров шрифта и клиентской части контрола. Внутри одной страницы содержится столько текста, сколько помещается на экране в клиентской части контрола. Навигация между страницами осуществляется по внешним командам. Окно также может подкачивать текст из потока данных, к которому подключается также по внешней команде.
Свойства¶
* Text - текстовый буфер.
* Font - описание шрифта:
* Name - название шрифта
* Typeface - тип шрифта
* Size - размер шрифта
* Color - цвет шрифта
* Border - рамка вокруг клиентской части:
* Visible - признак наличия рамки. Если нет, то остальные параметры могут быть опущены.
* Color - цвет рамки.
* Thickness - толщина рамки в пикселах.
- Blinking - интервал мигания (в 0.5 секунды). Если 0 - то мигание отключено.
- Scroll - скорость вращения. Если 0, то текст не вращается.
- Repeat - признак, определяющий поведение окна при достижении конца текста. Если он равен TRUE, то текст снова начинает выводиться с другой стороны клиентской части контрола. Если FALSE, то окно по окончании вывода переходит в состояние СТОП. В состоянии СТОП этот параметр игнорируется.
- SID - идентификатор потока данных, откуда будет подкачиваться текст в режиме подкачки из потока данных.
- Split - идентификатор алгоритма, с помощью которого осуществляется разбиение текста на страницы.
Методы¶
- !SetText(Text) - засылает текст в буфер контрола.
- !GetText(*Text) - считывает текст из буфера контрола.
- !GetCurrentPage(*Text) - считывает текст текущей страницы.
- !GetPagesNumber() - возвращает число страниц.
- !GetCurrentPageNumber() - возвращает номер текущей страницы.
- !SetScroll(Speed) - устанавливает скорость вращения текста. При записи 0 переходит в состояние СТОП.
- !GetScroll() - возвращает скорость вращения текста.
- !IsReapeated() - возвращает признак работы контрола по концу текста. Если текст снова начинает выводиться с другой стороны контрола, то возвращается TRUE. Если вращение останавливается, то возвращается FALSE.
- !SetRepeat(Value) - устанавливает режим повторения текста, если ValueTRUE. * *!DisplayPage*(!PageNumber) - выводит на экран страницу текста с указанным номером. Если указан 0, то выводится первая страница, если FFFF - то последняя, FFF7 означает переход к следующей странице после текущей, а FFF0 - к предыдущей. * *!ConnectToStream*(SID) - подключение к потоку данных. Если SID0, то контрол отключается от потока данных. В противном случае происходит подключение, и контрол автоматически переводится в режим SCROLL.
- !ConnectedStream() - возвращает идентификатор потока данных. Если 0, то контрорл не подключен к потоку.
TABLE¶
Таблица представляет собой окно из упорядоченного набора бегущих строк, которые находятся в состоянии СТОП. Таблица позволяет адресоваться к каждой ячейке таблицы по индексам.
Свойства¶
* Rows - число строк в таблице.
* Columns - число колонок в таблице.
* Border - рамка вокруг ячеек:
* Visible - признак наличия рамки. Если нет, то остальные параметры могут быть опущены.
* Color - цвет рамки.
* Thickness - толщина рамки в пикселах.
Пример таблицы:
{{Image("Table.jpg","width=400px")}}
Методы¶
- !SetCellText(Column, Row, Text) - устанавливает текст в ячейку таблицы.
- !GetCellText(Column, Row, *Text) - считывает текст из ячейки таблицы.
- !GetRowsNumber() - возвращает число строк.
- !GetColumnsNumber() - возвращает число столбцов.
- !GetCellProperty(Column, Row, Name) - возвращает указанное свойство отдельной ячейки.
- !SetCellProperty(Column, Row, Name, Value) - устанавливает свойство отдельной ячейки.
- !SetRowProperty(Row, Name, Value) - устанавливает свойство отдельной строки.
- !SetColumnProperty(Column, Name, Value) - устанавливает свойство отдельного столбца.
- !SetTableProperty(Name, Value) - устанавливает свойство всей таблицы.
LEVEL¶
Индикатор уровня представляет собой прямоугольное окно, предназначенное для отображения уровня звукового сигнала и разбитое на 3 области:
- область меток
- область штрихов
- и области сегментов
Область сегментов состоит из нескольких одинаковых прямоугольных сегментов, следующих один за другим. Каждый сегмент имеет два состояния — подсвеченный и неподсвеченный. Внешний вид сегментов и уровень срабатывания задаются таблицей, в которой определяются уровень сигнала для сегмента в дБ (float) и его внешний вид. Установка текущего уровня происходит при помощи задания текущего уровня либо с помощью внешней команы, либо путём получения данных из потока данных.
Свойства¶
* Level - псевдосвойство, запись в которое приводит к вызову метода SetLevel.
* Pick - псевдосвойство, запись в которое приводит к вызову метода SetPick.
* Orientation - расположение индикатора: HORIZONTAL | VERTICAL.
* Areas - описание областей, состоящее из трёх символов подряд, каждый из которых описывает одну область. Они могут быть:
* 0 - поле отключено. Это означает, что клиентская область будет делиться на 2 части в случае XX0, или вообще состоять из одной единственной области в случае X00.
* I - область сегментов
* _-_- область штрихов
* L - область меток
* Color map - таблица раскраски сегментов:
* Mode - способ описания раскраски: INDEX | LEVEL. INDEX означает указание индексов сегментов, а LEVEL - по уровню сигнала в dB.
* Area - описание области одного цвета:
* Color - цвет сегментов.
* Begin - индекс или уровень первого сегмента.
* End - индекс или уровень последнего сегмента.
* Pick - цвет пикового индикатора. Если не указан, то используется цвет той области, в которой выводится пиковый индикатор.
* Border - рамка вокруг сегментов:
* Visible - признак наличия рамки. Если нет, то остальные параметры могут быть опущены.
* Color - цвет рамки.
* Thickness - толщина рамки в пикселах.
* Segments - таблица сегментов:
* Segment - описание отдельного сегмента:
* Level - нижний уровень сегмента в dB. Если текущий уровень выше указанного в этом поле, то сегмент зажигается.
* Stroke - признак, выводится ли штрих напротив этого сегмента в области штрихов.
* Label - метка, которая выводится в области меток напротив этого сегмента.
* Font - описание типа шрифта, используемого для вывода меток в области меток:
* Name - название шрифта
* Typeface - тип шрифта
* Size - размер шрифта
* Color - цвет шрифта
* Strokes - описание щтрихов:
* Size - длина штриха в процентах относительно минимального размера клиентской части контрола.
* Thickness - толщина штриха в пикселах.
* Color - цвет штриха.
* Border - рамка вокруг клиентской части индикатора:
* Visible - признак наличия рамки. Если нет, то остальные параметры могут быть опущены.
* Color - цвет рамки.
* Thickness - толщина рамки в пикселах.
- SID - идентификатор потока данных при получении уровня и пикового значения из потока данных.
{{Image("LevelM.jpg","width=300px")}}
Пример индикатора уровня:
{{Image("Ind1.jpg","height=600px")}}
Методы¶
- !SetLevel(Method, Value) - устанавливает текущее значение индикатора. При этом Method определяет способ, каким адресуется значение: по индексу сегмента или по уровню. А Value, соответственно, содержит либо номер сегмента, либо уровень в dB.
- !SetPick(Method, Value) - устанавливает пиковое значение индикатора. При этом Method определяет способ, каким адресуется значение: по индексу сегмента или по уровню. А Value, соответственно, содержит либо номер сегмента, либо уровень в dB.
MEDIA¶
Проигрыватель мультимедиа представляет собой прямоугольное окно для проигрывания различных видео-файлов и потоковых видео-данных. Может подключаться к видеопотоку и отключаться от потока по внешней команде.
Свойства¶
- SID - идентификатор потока данных.