hmi

Матеріали курсу Людино-машинні інтерфейси

До лабораторної роботи 4

Додаток 4.6. Cicode функції, що використані в лабораторній роботі

Д4.6.1. Функції роботи з вікнами WinNew, WinNewAt, WinFree та PagePopUp

Функція WinFree закриває спливаюче вікно. Синтаксис:

WinFree()

Функція WinNew створює нове вікно з вказаним іменем сторінки.

WinNew (sPage)

де sPage – символьне ім’я сторінки. Наприклад, наступний код створює вікно зі сторінкою “Alarm”, вказівник на вікно записується в змінну Window.

Window=WinNew("Alarm");

Функція WinNew як правило використовується для створення спливаючих вікон або суперджинів. Альтернативою для відкриття спливаючих вікон може слугувати функція PagePopUp, яка відкриває сторінку у місці розміщення курсору. Кожен новий виклик буде відкривати сторінку в цьому ж вікні. Синтаксис:

PagePopUp(sPage)

Для відкриття вікна у вказаній позиції та означення його поведінки використовується функція WinNewAt. Синтаксис:

WinNewAt(sPage, X, Y, Mode)

де sPage – назва або номер сторінки, що повинна відобразитися

X, Y – координати в пікселях

Mode – режим вікна: ціле число, що задається набором бітів. Деякі значення наведені нижче (інші див. в довідниковій системі);

1 – дочірня сторінка вікна, з якого було викликане; закривається при виклику функцій PageDisplay() або PageGoto().

2 – дочірнє вікно вікна, з якого було викликане; вікно закривається при виклику WinFree().

4 – не можна змінювати розмір, не має іконок максимізації і мінімізації;

8 – не має іконок, з товстими рамками та написом

16 – не має іконок і напису, з тонкими рамками

64 – завжди на передньому плані

128 – відкриття унікального вікна, не може відкриватися більше ніж один раз одночасно

Наприклад, наступний код викличе дочірнє вікно зі сторінкою “Popup” в позиції 100,200:

WinNewAt("Popup", 100, 200, 2)

Д4.6.2. AssWin, AssPopUp

Для виклику спливаючого вікна або суперджина з передачею параметрів в асоціації можна використати функцію AssWin. Дана функція об’єднує дві функції Ass – для підстановки асоціативних змінних, та WinNewAt. Синтаксис функції:

AssWin(sPage, X, Y, Mode, sTag1, [sTag2..8])

sPage – ім’я спливаючої сторінки, або суперджина; необхідно не забувати, що у більшості випадків ім’я починається з “!”;

X, Y – координати (аналогічно як в WinNewAt);

Mode – режим вікна (аналогічно як в WinNewAt);

sTag1, [sTag2..8] - ім’я асоціативних змінних (до 8-ми), вказуються в лапках.

Наприклад, наступний код викличе суперджин “!MyGenie” з кординатами 100 та 200 та передачею в місце асоціацій трьох змінних “PV123”, “OP123” та “SP123”.

AssWin("!MyGenie", 100, 200, 1 + 8, "PV123", "OP123", "SP123");

Якщо необхідно відкрити вікно у місці курсору можна скористатися функцією AssPopUp. Синтаксис:

AssPopUp(sPage, sTag1, [sTag2..8])

Д4.6.3. Використання функції автостарту

Citect дає можливість при старті кожної підсистеми (серверів та клієнтів) запускати CiCode функцію. Яка саме функція буде запускатися задається параметрами. Наприклад, для старту клієнта це вказується в параметрі [Client]StartupCode. Функцію можна вказати в майстрі конфігурування комп’ютеру. Наприклад, на рис.Д4.6.1 стартовою функціє для клієнта є ClientStartup.

img

Рис.Д4.6.1 Вказівка на стартову функцію для різних підсистем через майстер конфігурування

Д4.6.4. Login

Використовуючи функцію Login можна реєструвати в системі користувача з вказаним іменем та паролем. Синтаксис:

Login(sUserName, sPassword)

sUserName - ім’я користувача

sPassword - пароль

Наприклад, наступний код реєструє в системі користувача “FRED”, що має пароль “ABC”

Login("FRED","ABC");

Д4.6.5. SOEEventAdd

Використовуючи цю функцю можна добавити повідомлення в журнал SOE.

SOEEventAdd(TimeStamp, Message, Tag)

TimeStamp - час фіксвання події

Message - повідомлення

Tag (необовязкове) - аларм тег, що асоціюється з подією. Якщо тег буде не вказано, подія буде асоційованою як системна.

SOEEventAdd(TimestampCurrent(), "Відкрита сторінка установки підігріву")