Сервер визуализации online-воздействия
Klinachyov2Lib.SV_Meter

Сервер визуализации реализован в виде ActiveX-элемента, поэтому может быть внедрен в любой контейнер, в качестве которого могут выступать такие приложения, как MS Internet Explorer, MS Word, MS Visio, Corel Draw.

Особенности взаимодействия с K2-ядром

Интерфейс Klinachyov2Lib.SV_Meter используется лишь для конфигурации сервера. Взаимодействие же с математическим ядром в период выполнения организованно посредствам экспортирования указателя на си-класс сервера в область видимости си-классов математического ядра. Чем достигается предельное быстродействие в обход интерфейса ActiveX-элемента.

Режимы работы

Возможно два варианта использования сервера визуализации: в качестве шкального прибора или ползункового регулятора. Для включения требуемого режима следует установить значение True или False свойства SV_Meter.SliderMode.

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

Методы

SV_Meter.SetScale

Метод для настройки шкалы прибора (сервера визуализации).

Синтаксис:

SetScale (dxMantissa As Integer, dxExp As Integer, dxAmnt As Integer, dxShift As Long, PerPx As Integer)

Аргументы:

dxMantissa Код мантиссы приращения величины между декадными (подписанными на шкале) штришками. Возможные значения: 1 (соответствует значению мантиссы 0.1); 2 (0.2); 3 (0.5). Таким образом, при значении dxMantissa = 2, шкала из пяти декадных секций будет подписана значениями: 0.0; 0.2; 0.4; 0.6; 0.8; 1.0.
dxExp Показатель десятичной степени для мантиссы декадных штришков.
dxAmnt Количество декадных штришков на шкале прибора. Значения, рекомендуемые ГОСТ: 1, 2, 5, 10. Но пользователь может установить другие значения.
dxShift Смещение начала шкалы, измеряемое в количестве декадных штришков. Так для реализации симметричной шкалы с отрицательными значениями с двумя декадными штришками необходимо установить параметры: dxAmnt = 2; dxShift = -1. При dxMantissa = 1, шкала будет подписана согласно образцу: -0.1; 0.0; 0.1.
PerPx Количество пикселей между штришками шкалы. Минимальное значение 3, максимально обычно не превышает 7.

Примеры настройки шкалы

SetScale 1, 8, 10, 0, 3
SetScale 2, 8, 5, 0, 6
SetScale 3, -10, 5, 0, 6
SetScale 1, 8, 2, 0, 12
SetScale 1, 8, 2, -1, 12

Пример динамической реконфигурации шкалы

Настройка шкалы
 Мантисса:  
 Степень:  
 Декады:  
 Сдвиг:  
 Пиксели:  
 Сигнал:  

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

Свойства

SV_Meter.Value As Double

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

Пример использования свойства SV_Meter.Value



MsgBox SV_Meter.Value


SV_Meter.Value = 5.25

SV_Meter.SliderMode As Boolean = False

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

Пример использования свойства SV_Meter.SliderMode



SV_Meter.SliderMode = True

SV_Meter.SliderMode = False

SV_Meter.K2ID As Long

Идентификатор сервера визуализации (для связывания с блоком в K2-ядре).

События

SV_Meter.onDblClick

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

Пример использования события SV_Meter.onDblClick

При двойном щелчке по ползунку поле ввода отображает текущее значение сигнала.

SV_Meter.SliderMove

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

Пример использования события SV_Meter.SliderMove


Норма