Створення динамічних людино-машинних інтерфейсів для систем промислового управління за допомогою
Завдяки розробкам компанії Adobe Systems, понад 300 мільйонів мобільних пристроїв мають графічний інтерфейс користувача (ГПІ/GUI), створений на основі технології Adobe Flash. Передбачається, що до 2010 року це число перевищить мільярд. Розробники систем, що використовуються в промисловості, медицині, автомобілях, теж починають звертати увагу на Flash-технологію, оскільки з її допомогою можна скоротити час на розробку ДПІ майже на 50%. Раніше команди розробників ПЗ повинні були перекладати прототипи ДПІ, що є у них, на мову С, С++ або Java - процес трудомісткий, що займає багато тижнів і місяців. Зараз можна за допомогою високорівневих інструментів технології Flash проектувати, створювати, і запускати компоненти ДПІ безпосередньо на вбудованих Flash-плеєрах, без необхідності писати графічні коди.
Технологія Adobe Flash стала завойовувати популярність серед розробників систем, що вбудовуються, з кількох причин.
Для переходу на Flash-технологію розробники промислових систем управління можуть зробити собі вибір серед великого набору інструментальних засобів, багато з яких вони вже використовували раніше. Наприклад, для генерації Flash-контенту можна скористатися інструментами CAD та текстовими процесорами для настільних систем, за допомогою спеціальних утиліт можна конвертувати різноманітні презентаційні формати у формат Flash. Розробники можуть також скористатися Flash-компонентами, які інтегрують Flash-контент та елементи керування ActiveX. Різноманітність засобів підтримки для створення Flash-контенту та керування екраном спрощує перехід до інтерфейсів користувача,заснований на Flash-технології.
Безграничні можливості
Тим не менш, щоб задовольняти вимоги розробників вбудованих систем, необхідно при реалізації Flash-додатків відповісти на кілька питань:
- Як розробники зможуть інтегрувати Flash-контент та інші графічні програми, такі як веб-браузери або програми візуалізації 3D-графіки? Чи можна на одному графічному дисплеї візуалізувати одночасно Flash-додаток та звичайну 2D/3D-графіку, незважаючи на те, що вони використовують різні моделі малювання?
- Як зробити так, щоб поведінка інтерфейсу користувача, заснованого на Flash-технології, була б однаковою за всіх умов завантаження? Для більшості вбудованих систем ДПІ повинен у будь-який час швидко реагувати на дії користувача, що вимагає відповідного керування рівнем пріоритету та забезпечення продуктивності роботи в реальному часі.
- Як зробити, щоб інтерфейс користувача на базі Flash технології був надійним? Чи зможе система контролювати збої та успішно виходити з них? Чи зможе Flash-контент надійно співіснувати із критичними процесами?
- Як розробники можуть контролювати взаємодію Flash-контенту зі службами операційної системи (ОС), наприклад, з аудіо-виходом, сенсорним екраном, драйверами критичних на час пристроїв, з файловими системами і мережевими стеками?
Інтеграція Flash-програм з іншими графічними програмами
Традиційно Flash-плеєр запускається у веб-браузері або у віконній системі. Однак, розробка ДПІ може бути значно спрощена, якщо цю модель повернути з ніг на голову і зробити головною Flash-середовище, де запускатимуться всі графічні програми незалежно від того, зроблені вониу Flash-технології чи ні. Тоді Flash-технологія бере на себе роль адміністратора екрану, надаючи можливість розробнику графіки здійснювати детальний контроль над переміщеннями меню та над звуковими ефектами. У такому середовищі простіше виконується адаптація потреб користувача за рахунок більш вільного позиціонування, зміни розмірів і конфігурування графічних компонентів.
На рис. 1 дано приклад використання Flash-технології як адміністратора екрана. Програма ліворуч – це Flash-плеєр, за допомогою якого безпосередньо в простір програми були завантажені два компоненти: графічна 2D-бібліотека та графічний драйвер, який керує графічним обладнанням. Завантаживши драйвер таким шляхом, виявляється можливим здійснювати безпосереднє керування графічним обладнанням прямо з програми, а отже, підвищується продуктивність системи. Праворуч "рідна" програма ОС малює тривимірну картинку засобами OpenGL ES, стандартного інтерфейсу API для тривимірних додатків у системах, що вбудовуються. Як і Flash-програма, інтерфейс API також керує графічним обладнанням, забезпечуючи високу продуктивність виведення.

Мал. 1 - Інтеграція Flash-додатків з іншими графічними програмами. У цьому прикладі програма, заснована на Flash-технології, керує програмою для малювання тривимірних зображень, заснованою на використанні функцій 3D API пакета OpenGL ES.
Багато кристалів для вбудованих систем в даний час підтримують роботу з кількома шарами, що дає можливість Flash-програм ефективно співіснувати з іншими графічними додатками на тому самому дисплеї. На рис. 1 Flash-плеєр промальовує шар переднього плану та керуєвідображення тривимірних картинок на фоновому шарі. Щоб зробити видимим тривимірне полотно розробник використовував на шарі переднього плану техніку хроматичного ключа (chroma key). Оскільки візуалізація тривимірного зображення та Flash-картинки відбувається у різних шарах, графічний контролер може оновити тривимірну картинку без перемальовки Flash-контенту. Це зменшує мерехтіння зображення та знижує навантаження на ЦПУ.
Розробник може також використовувати методи альфа-сполучень (alpha blending) та хроматичного ключа для того, щоб зробити Flash-компоненти напівпрозорими, а потім розмістити їх прямо поверх іншого контенту. На рис. 2 можна бачити напівпрозоре вікно із попередженням поверх анімованої консолі управління, що демонструє підхід до більш щільного розміщення інформації на малому екрані.
Забезпечення передбачуваного часу відгуку
ДПІ вбудованого пристрою повинен завжди швидко реагувати на команди користувача, навіть тоді, коли в системі запущено безліч завдань, що інтенсивно використовують ЦПУ. Не залишається можливості реагувати на запити користувача за інтерфейсом. Проблема ще більше ускладнюється, коли одночасно працюють кілька графічних програм, які претендують на ресурси ЦПУ. Одним із рішень є створення центрального адміністратора дисплея, де використовується пріоритетність потоків для керування доступом графічних програм до ЦПУ.

Мал. 2 - ДПІ, де використовується альфа-сполучення для відображення напівпрозорого вікна з попередженням (Warning) поверх анімованої консолі управління. Оскільки візуалізація консолі та вікна із попередженням реалізовані у різних шарах, графічний драйвер може робити перемальовку консолі без перемальовування вікна із попередженням.Напівпрозорі компоненти дають можливість розміщувати інформацію на малому екрані щільніше.
Але все ж таки за важких умов завантаження ЦПУ – наприклад, коли система керує багатьма програмними потоками або виконує синхронізацію тисяч точок даних – продуктивність ДПІ може спуститися до неприпустимого рівня. У закритих системах, де можна контролювати всі випадки використання системних ресурсів, команда розробників має можливість запобігти таким провалам у продуктивності. А от у системах, де здійснюється динамічна підтримка нового контенту чи додатків, запобігти таким ситуаціям стає значно складніше.
Одним із шляхів вирішення цієї проблеми є використання технології поділу часу. Використовуючи її, системний розробник поміщає програмні компоненти в окремі часові секції та виділяє для кожної секції гарантований відсоток часу із ресурсів ЦПУ. Наприклад, розробник виділяє 20% ресурсів ЦПУ працювати ДПІ, 20% управління роботою запущених процесів, 30% на синхронізацію з базою даних тощо. При такому підході користувач отримає реакцію від ДПІ за гарантований час, незалежно від того, наскільки сильно завантажують процеси ЦПУ в інших секціях, навіть якщо ці процеси мають більш високий пріоритет.
Часто процеси у секції не витрачають усі виділені на конкретну секцію цикли ЦПУ. В ОСРВ QNX® Neutrino® планувальник управління виділенням часу може вирішити цю проблему, динамічно перерозподіляючи цикли ЦПУ, що не використовуються, тим секціям, де цей невикористовуваний процесорний час може принести користь. Такий підхід дозволяє ГПІ, заснованому на Flash-технології, працювати чіткіше, і швидко, коли виявляється доступний додатковий процесорний час. З іншогосторони та інші програмні підсистеми зможуть працювати швидше, коли ДПІ не використовує виділений для нього бюджет ЦПУ.
Управління ситуаціями відмови у роботі
Для запобігання простою в багатьох системах, що вбудовуються, потрібно забезпечити деякий рівень відновлення після аварії. Використовуючи механізм сповіщення про аварії, який надається базовою ОС, раніше обговорюваний адміністратор дисплея може отримати інформацію про програми, що відмовили. Якщо відмовляє Flash-програма або графічна програма під час захоплення мутексу, адміністратор ресурсів може звільнити мутекс і дати можливість роботи наступній у черзі пріоритетів програмі. Адміністратор дисплея може також відновити деякі ресурси, що використовуються програмою, що відмовила, і перезапустити програму.
Ми вже обговорювали питання про те, як поділ часу може допомогти швидкому та адекватному реагуванню на дії користувача. Така технологія може допомогти також у реалізації функцій сповіщення про збої та відновлення після збоїв у нормальні часи, навіть якщо ці функції запущені з низьким пріоритетом. Чим раніше надійде зворотний відгук від цих функцій, тим більші відмови ПЗ вдасться запобігти, тим більше, що відмови ПЗ можуть перерости у відмови обладнання.
Управління взаємодіями
Для успішної інтеграції Flash-додатків розробники вбудованих пристроїв повинні керувати двома типами взаємодій:
- використовуючи Flash-контент, запускати та керувати іншим Flash-контентом – для цього потрібен механізм, який дозволяє головному Flash-додатку завантажувати, розміщувати, запускати та зупиняти роботу Flash-додатків;
- дозволяти взаємодію між Flash-контентом та службами ОС – для цього потрібен механізмретрансляції запитів даних.

Мал. 3 - Архітектура управління взаємодіями між декількома Flash-додатками, а також між декількома Flash-і не-Flash-додатками.
Чудова суміш
Підбиваючи підсумки, можна сказати, що команди розробників вбудованого ПЗ можуть зберегти продуктивність і надійність у системах реального часу, використовуючи силу і переваги Adobe Flash для скорочення часу виходу продукції на ринок. Більш того, розробники можуть створити структурні конструкції на основі компонентів HMI, які зможуть ефективно поєднуватися з додатками 2D/3D, Flash-додатками та додатками мультимедіа.
27, Лютий 2019
28, Грудень 2018
12, лютий 2018