Създаване на динамични интерфейси човек-машина за използване на индустриални системи за управление
Благодарение на развитието на Adobe Systems повече от 300 милиона мобилни устройства имат графичен потребителски интерфейс (GUI), базиран на технологията Adobe Flash. Очаква се до 2010 г. този брой да надхвърли един милиард. Разработчиците на вградени системи, които се използват в индустрията, медицината и автомобилите, също започват да обръщат внимание на Flash технологията, тъй като тя може да се използва за намаляване на времето за разработка на GUI с почти 50%. Преди това екипите за разработка на софтуер трябваше да превеждат своите GUI прототипи на C, C++ или Java, отнемащ време процес, който отнемаше много седмици и месеци. Сега можете да проектирате, създавате и изпълнявате GUI компоненти директно на вградени Flash плейъри, като използвате инструменти за Flash технология от високо ниво, без да се налага да пишете графични кодове.
Технологията Adobe Flash стана популярна сред разработчиците на вградени системи по няколко причини.
За да мигрират към технологията Flash, разработчиците на индустриални системи за управление могат да избират от широк набор от инструменти, много от които вече са използвали. Например можете да използвате CAD инструменти и текстообработващи програми за настолен компютър, за да генерирате Flash съдържание и можете да използвате специални помощни програми за конвертиране на различни презентационни формати във Flash. Разработчиците могат също да се възползват от Flash компоненти, които интегрират Flash съдържание и ActiveX контроли. Разнообразие от помощни инструменти за създаване на Flash съдържание и контрол на екрана опростява прехода към потребителски интерфейси,базиран на Flash технология.
Безгранични възможности
Въпреки това, за да се отговори на изискванията на разработчиците на вградени системи, е необходимо да се отговори на няколко въпроса при внедряването на Flash приложения:
- Как могат разработчиците да интегрират Flash съдържание и други графични програми като уеб браузъри или приложения за изобразяване на 3D графики? Могат ли Flash приложение и обикновени 2D/3D графики да бъдат изобразявани на един и същ графичен дисплей едновременно, въпреки факта, че използват различни модели за рисуване?
- Как можете да направите поведението на потребителския интерфейс, базиран на технологията Flash, последователно при всички условия на зареждане? За повечето вградени системи графичният потребителски интерфейс трябва да реагира бързо на въвеждане от потребителя по всяко време, което изисква подходящо управление на ниво на приоритет и производителност в реално време.
- Как да направим потребителския интерфейс, базиран на технологията Flash, надежден? Ще може ли системата да контролира повреди и успешно да се възстановява от тях? Може ли Flash съдържанието да съществува надеждно съвместно с критични процеси?
- Как могат разработчиците да контролират как съдържанието на Flash взаимодейства с услугите на операционната система (ОС), като аудио изход, сензорен екран, критични за времето драйвери на устройства, файлови системи и мрежови стекове?
Интеграция на Flash-програми с други графични приложения
Традиционно Flash плейърът работи в уеб браузър или прозоречна система. Въпреки това, разработката на GUI може да бъде значително опростена, ако този модел се обърне с главата надолу и се направи основната Flash среда, където ще работят всички графични приложения, независимо дали са направени.във Flash технологията или не. След това технологията Flash поема ролята на администратор на екрана, давайки на графичния дизайнер прецизен контрол върху навигацията в менютата и звуковите ефекти. В такава среда е по-лесно да се адаптира към нуждите на потребителя поради по-свободно позициониране, преоразмеряване и конфигуриране на графични компоненти.
На фиг. 1 е пример за използване на технологията Flash като екранен мениджър. Програмата отляво е Flash player, който зарежда два компонента директно в пространството на приложението: 2D графична библиотека и графичен драйвер, който контролира графичния хардуер. Чрез зареждане на драйвера по този начин е възможно директно да се управлява графичният хардуер директно от програмата и следователно се повишава производителността на системата. Вдясно програма за собствена операционна система рисува 3D изображение с помощта на OpenGL ES, стандартния API за 3D приложения във вградени системи. Подобно на програмата Flash, API също контролира директно графичния хардуер, за да осигури висока изходна производителност.

Фиг. 1 - Интегриране на Flash приложения с други графични приложения. В този пример програма, базирана на Flash, контролира приложение за 3D чертане, базирано на функциите на OpenGL ES 3D API.
Много вградени чипове вече поддържат множество слоеве, което позволява на Flash програмите да съществуват ефективно съвместно с други графични приложения на един и същи дисплей. На фиг. 1 Flash player рисува слоя на преден план и контролитепоказване на триизмерни картини на фоновия слой. За да направи 3D платното видимо, разработчикът използва техника на цветен ключ на слоя на преден план. Тъй като изобразяването на 3D изображението и Flash изображението се извършва в различни слоеве, графичният контролер може да актуализира 3D изображението, без да преначертава Flash съдържанието. Това намалява трептенето на изображението и натоварването на процесора.
Разработчикът може също така да използва alpha смесване и chroma keying, за да направи компонентите на Flash полупрозрачни и след това да ги постави директно върху друго съдържание. На фиг. На фигура 2 може да се види полупрозрачен предупредителен прозорец в горната част на анимираната контролна конзола, демонстриращ подход към по-плътна информация на малкия екран.
Осигуряване на предвидими времена за реакция
Графичният потребителски интерфейс на вграденото устройство трябва винаги да реагира бързо на потребителски команди, дори когато системата изпълнява много задачи, изискващи много CPU. Няма начин да се отговори на потребителски заявки в интерфейса. Проблемът става още по-сложен, когато няколко графични програми работят едновременно, изисквайки ресурси на процесора. Едно решение е да се създаде централен мениджър на дисплея, който използва приоритет на нишката, за да контролира достъпа на графичните програми до процесора.

Фиг. 2 - GUI, който използва алфа смесване, за да покаже полупрозрачен прозорец за предупреждение в горната част на анимирана контролна конзола. Тъй като изобразяването на конзолата и предупредителният прозорец са внедрени в различни слоеве, графичният драйвер може да преначертае конзолата, без да преначертае предупредителния прозорец.Полупрозрачните компоненти правят възможно по-плътното разполагане на информацията върху малък екран.
Въпреки това, при тежки условия на натоварване на процесора - например, когато системата управлява много програмни нишки или синхронизира хиляди точки от данни - производителността на GUI може да падне до неприемливо ниво. В затворени системи, където цялото използване на системни ресурси може да се контролира, екипът за разработка има способността да предотврати подобни спадове в производителността. Но в системи, където ново съдържание или приложения се поддържат динамично, става много по-трудно да се предотвратят подобни ситуации.
Един от начините за решаване на този проблем е използването на технология за споделяне на времето. Използвайки го, системният дизайнер поставя софтуерните компоненти в отделни временни секции и разпределя гарантиран процент от процесорното време за всяка секция. Например, разработчик отделя 20% от ресурсите на процесора за работата на GUI, 20% за управление на работата на изпълняваните процеси, 30% за синхронизиране с базата данни и т.н. С този подход потребителят ще получи отговор от графичния потребителски интерфейс в гарантирано време, без значение колко интензивни са процесите в други секции, дори ако тези процеси имат по-висок приоритет.
Често процесите в даден дял не консумират всички CPU цикли, разпределени за този дял. В QNX® Neutrino® RTOS, планировчикът за разпределяне на време може да реши този проблем чрез динамично разпределяне на неизползваните CPU цикли към секции, където това неизползвано CPU време може да бъде полезно. Този подход позволява на GUI, базиран на Flash, да работи по-гладко и бързо, когато е налично допълнително процесорно време. С другстрана и други софтуерни подсистеми ще могат да работят по-бързо, когато GUI не използва бюджета на процесора, разпределен за него.
Управление на отказ от услуга
Много вградени системи изискват известно ниво на възстановяване след бедствие, за да се предотврати прекъсване. Използвайки механизма за уведомяване за срив, предоставен от основната операционна система, администраторът на дисплея, обсъден по-рано, може да получи информация за неуспешни приложения. Ако Flash програма или графична програма се провали при получаване на мютекс, тогава мениджърът на ресурсите може да освободи мутекса и да позволи на следващата програма в опашката с приоритет да се изпълни. Администраторът на дисплея може също да възстанови някои от ресурсите, използвани от неуспешната програма, и да рестартира програмата.
Вече обсъдихме как споделянето на време може да помогне за бърза и подходяща реакция на действията на потребителите. Такава технология може също така да помогне за внедряването на функции за известяване при повреда и възстановяване при повреда в нормални времеви рамки, дори ако тези функции работят с нисък приоритет. Колкото по-скоро се получи обратна връзка от тези функции, толкова повече софтуерни повреди могат да бъдат предотвратени, особено след като софтуерните повреди могат да се превърнат в хардуерни повреди.
Управление на взаимодействието
За да интегрират успешно Flash приложения, вградените разработчици трябва да управляват два типа взаимодействия:
- използване на Flash съдържание, стартиране и управление на друго Flash съдържание - това изисква механизъм, който позволява на основното Flash приложение да зарежда, хоства, стартира и спира Flash приложения;
- позволяват взаимодействие между Flash съдържание и OS услуги - това изисква механизъмпрепредаване на заявки за данни.

Фиг. 3 - Архитектура за управление на взаимодействията между множество Flash приложения и между множество Flash и не-Flash приложения.
Отлична смес
В обобщение, екипите за разработка на вграден софтуер могат да поддържат производителност и надеждност в системи в реално време, като използват силата и предимствата на Adobe Flash, за да намалят времето за пускане на пазара. Освен това разработчиците могат да създават структурни проекти, базирани на HMI компоненти, които могат ефективно да се комбинират с 2D/3D приложения, Flash приложения и мултимедийни приложения.
Tweet
27 февруари 2019 г
28 декември 2018 г
12 февруари 2018 г