SCADA, АСУ ТП, контроллеры – основная тематика журнала «ИСУП»
Журнал «Информатизация и Системы Управления в Промышленности» публикует тематические материалы посвященные SCADA, АСУ ТП, контроллерам, автоматизации в промышленности.

Windows Embedded Standard 7 в интерфейсных устройствах: технология Windows Touch

В статье приведен обзор средств разработки новой встраиваемой ОС Windows Embedded Standard 7, рассмотрены возможности системы для работы с сенсорными экранами, в том числе с поддержкой Multi-Touch.

ООО «Кварта Технологии», г. Москва

QUARTA_SITE.jpg


В апрельском номере журнала «ИСУП» мы познакомились с возможностями встраиваемой операционной системой Windows Embedded CE 6.0 для построения систем реального времени. Чем жестче требования к таким системам, тем более актуальным становиться специализация на исполнительные и управляющие устройства, поскольку одна только отрисовка интерфейса может ощутимо сказаться на характеристиках реального времени. В таком тандеме исполнительные устройства отвечают за отработку управляющих сигналов в режиме реального времени. Задача управляющих или, как их еще можно назвать, интерфейсных устройств заключается в отображении информации для контроля за работой системы и формировании управляющих сигналов для исполнительных устройств. Для решения широкого круга задач в интерфейсных устройствах не требуется поддержка реального времени. Например, в системе кондиционирования для поддержания требуемой температуры и влажности в цеху задержка порядка секунды не является критической. Другой пример – автоматизация сложного технологического процесса, когда операции процесса исполняются в реальном времени, а конфигурирование/запуск/останов выполняется с помощью систем без поддержки реального времени.

Итак, выполнив условное разделение на исполнительные и интерфейсные системы, рассмотрим, какие варианты доступны для разработки последних. Так как для данного класса устройств требования по реальному времени выходят на второй план, то круг доступных систем значительно расширяется. Помимо компактных систем, как например, Windows Embedded CE, есть возможность использовать настольные операционные системы, такие, как Windows XP и Windows 7. Преимущества очевидны – это гораздо более широкая поддержка со стороны производителей оборудования и разработчиков программного обеспечения. Обе указанные операционные системы имеют свои аналоги в линейке Windows Embedded – это Windows Embedded Standard 2009 и Windows Embedded Standard 7. Отличительными особенностями встраиваемых операционных систем Windows Embedded Standard является их компонентность и наличие возможностей по встраиванию. Под компонентностью подразумевается возможность гибко формировать функционал системы, тем самым уменьшая дисковый объем, занимаемый системой, и, как следствие, увеличивая производительность и надежность работы устройства. Возможности по встраиванию позволяют реализовать функции востребованные в устройствах, как, например, загрузка с USB, которые недоступны в настольных версиях операционных систем.


pic1.jpg

Рис. 1. Выбор шаблона устройства


pic2.jpg

Рис. 2. Установка драйверов


Процесс разработки и внедрения встраиваемых систем отличается от установки настольных систем. При этом в новой встраиваемой системе, Windows Embedded Standard 7, которая вышла весной этого года, эти отличия практически нивелированы. Помимо удобства и простоты развертывания в Windows Embedded Standard 7 доступны все новейшие технологии Windows 7. Для интерфейсных устройств, наверное, самой интересной является поддержка множественных касаний – технологии Multi-Touch. Таким образом, выбор Windows Embedded Standard 7 для построения интерфейсных устройств ­вполне обоснован как с точки зрения освоения средств разработки, так и функциональности самой системы. Обратной стороной медали являются более высокие требования к аппаратной части по сравнению с Windows Embedded Standard 2009 (Windows XP). Познакомимся со средствами разработки Windows Embedded Standard 7.


Средства разработки

Основными инструментами разработки образа Windows Embedded Standard 7 являются Image Builder Wizard (IBW) и Image Configuration Editor (ICE). IBW – это мастер для установки образа системы на целевом устройстве, который может быть запущен с DVD или USB-флеш диска. Таким образом, для установки Windows Embedded Standard 7 достаточно загрузиться c DVD-диска из поставки средств разработки и пройтись по окнам мастера аналогично установке настольной ОС. При этом у разработчика есть возможность выбрать шаблон устройства, например Industrial Automation (рис. 1), установить драйвера устройств (рис. 2) и сформировать функционал системы (рис. 3). Элементарной единицей функционала в Windows Embedded Standard 7 является пакет (package). В Windows Embedded Standard 2009 и ранее использовался другой термин – компонент (component). Данное изменение в терминологии призвано подчеркнуть, что при компонентизации Windows 7 использовался несколько другой подход, в результате чего гранулярность единиц функциональности возросла по сравнению с предыдущей версией. Шаблоны (templates), по сути, являются макропакетами или, как они называются в WES 2009, макрокомпонентами, содержащими перечень пакетов, и служат для прототипирования образа системы. Средства разработки позволяют разрешать зависимости между пакетами, то есть если для работы одного пакета необходимо наличие в образе других пакетов, то они будут добавлены при разрешении зависимостей. Более того, мастер установки IBW не продолжит свою работу до тех пор, пока не будут разрешены все зависимости, тем самым исключая возможность получить неработоспособный образ системы. Кроме рассмотренного варианта интерактивной установки есть возможность выполнить ее автоматически с помощью заранее подготовленного файла ответов. ICE, конфигуратор образа, как раз и служит для создания подобных файлов ответа (рис. 4), а также для создания собственных установочных дисков с IBW. Помимо IBW и ICE в поставке средств разработки находятся утилиты, позволяющие добавлять и удалять из развернутых систем функциональность (DISM), сохранять и разворачивать образы систем (ImageX) и пр. Для того чтобы более детально изучить возможности Windows Embedded Standard 7, на сайте Microsoft доступна полнофункциональная пробная версия данного продукта.


pic3.jpg

Рис. 3. Выбор пакетов функциональности

Ris4.jpg

Рис. 4. Создание файла ответов для автоматической 


Windows Touch

Наконец мы подошли к новым возможностям ОС, а именно технологии Windows Touch. Windows 7 – это первая настольная система, в которой реализована поддержка сенсорных экранов с распознаванием множественных касаний или Multi-touch. Multi-touch – это аппаратно-программное решение. С одной стороны, принцип действия сенсорного экрана должен обеспечивать одновременное распознавание нескольких касаний. С другой стороны, ОС должна уметь работать с такими сенсорными экранами, что подразумевает оптимизацию интерфейса и предоставление API для разработчиков приложений.

Если говорить про аппаратную составляющую, то далеко не все сенсорные экраны могут похвастаться поддержкой Multi-Touch. Например, конструкция самых распространенных резистивных сенсорных экранов физически не может обеспечить считывание касаний экрана в разных участках экрана. Немного теории. Резистивный экран представляет собой две прямоугольные пластины, установленные одна поверх другой. На пластины равномерно нанесено резистивное покрытие. Пространство между пластинами заполнено специальным материалом, который позволяет исключить замыкание пластин в отсутствие нажатия на экран. По сторонам пластин находятся электроды. Для считывания положения точки нажатия по горизонтальной оси между электродами нижней пластины прикладывается некоторое референсное напряжение U, которое благодаря покрытию создает равномерное распределение потенциала между электродами. Вторая пластина служит потенциометрическим щупом – при нажатии на экран происходит замыкание пластин в точке контакта и верхней пластине передается потенциал данной точки (рис. 5). Таким образом координата прямо пропорциональна значению потенциала верхней пластины. Преобразование аналогового значения потенциала в координату осуществляется контроллером сенсорного экрана. Для считывания второй координаты выполняется аналогичная процедура с той разницей, что напряжение прикладывается к электродам верхней пластины, а щупом становиться нижняя. Если допустить несколько одновременных касаний, то на выходе мы получим координаты средней точки, но никак не каждой отдельной точки.

Для поддержки Multi-Touch резистивные экраны требуют значительного усовершенствования конструкции. Это касается как покрытия пластин, так и логики контроллера. Покрытие следует наносить в виде параллельных дорожек, образующих при наложении пластин сетку (рис. 6). При нажатии на экран происходит замыкание соответствующих дорожек. Контроллер прикладывает напряжение к каждой отдельной дорожке нижней пластины и сканирует по очереди все дорожки верхней пластины. Наличие потенциала свидетельствует о нажатии, а номера дорожек соответствуют координатам: номер верхней дорожки – абсциссе, нижней – ординате.

Помимо резистивных следует упомянуть емкостные и оптические сенсорные экраны. Среди них также не все поддерживают Multi-Touch. Перейдем к программной части, а именно к возможностям Windows 7 в плане сенсорных экранов.


pic5.jpg

Рис. 5. Принцип работы резистивного сенсорного экрана


pic6.jpg

Рис. 6. Принцип работы резистивного сенсорного экрана
с поддежкой Multi-Touch


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

Поддержка множественных касаний реализована в некоторых стандартных приложениях Windows 7. В программе Paint можно рисовать одновременно несколькими кистями – пальцами, а стандартное приложение для просмотра графических файлов распознает жест увеличения/уменьшения, в котором задействованы сразу два пальца. Отличной демонстрацией возможностей Multi-Touch под Windows 7 является пакет «Microsoft Touch Pack for Windows 7». Данный пакет доступен для загрузки с сайта Microsoft.

Поддержка сенсорного ввода и Multi-Touch может быть использована и в сторонних приложениях. Даже в приложениях, разработанных без учета сенсорного ввода, автоматически задействовуются базовые жесты. Всю работу в данном случае выполняет ОС, приложение получает информацию в привычном для него виде. К базовым жестам относятся: панорамирование, увеличение/уменьшение и пролистование. Гораздо более широкие возможности открываются для приложений, разработанных с использованием расширенного API (Application Programming Interface).

Прежде чем углубиться в описание нового функционала в API ОС Windows 7, следует упомянуть о принципах работы Windows-приложений. В Windows, начиная с первых версий и по сей день, используется событийная схема взаимодействия с приложениями. При возникновении какого-либо события, например при нажатии клавиши или перемещении курсора мыши, ОС отправляет соотвествующее сообщение. Приложения определенным образом регистрируются на получение сообщений и выполняют их обработку. Сообщения имеют уникальные идентификаторы. Для удобства используется именование идентификаторов, начинающееся с «WM_». Например, нажатию левой клавиши мыши соответсвует сообщение с именем «WM_LBUTTONDOWN». Помимо собственно идентификатора сообщения ОС передает его параметры. Например, для приведенного ранее сообщения – это текущие координаты курсора мыши.

Вернемся к рассмотрению возможностей API Windows 7 для работы с сенсорными экранами. В первую очередь – это расширенная обработка стандартных жестов. Для этого приложению достаточно обрабатывать сообщение системы WM_GESTURE, в котором содержится подробная информация о жесте и его параметрах. Для более сложных сценариев приложение может зарегистироваться на получение сообщения WM_TOUCH. WM_TOUCH обеспечивает низкоуровневую информацию о взаимодействии пользователя с сенсорным экраном, на основе которой можно реализовать распознавание комбинации жестов или собственных жестов. Представим, что в приложении допускается использование одновременно нескольких жестов и выполняется жест увеличения с одновременным вращательным движением. При помощи WM_GESTURE мы получим информацию только об одном жесте. Для распознавания комбинации жестов служит процессор манипуляций (Manipulation Processor). Процессор манипуляций по информации сообщения WM_TOUCH отслеживает и анализирует перемещение каждого отдельного пальца и оповещает приложение о начале отдельного жеста, его развитии и окончании. И в заключение краткого обзора возможностей сенсорного ввода Windows 7 следует упомянуть об еще одном средстве – инерционном процессоре (Inertia Processor). Инерционный процессор добавляет манипуляциям реалистичности с физической точки зрения. Во-первых, что следует из названия процессора, жесты могут продолжать свое развитие как бы по инерции. Например, выполнив на экране жест вращения и убрав пальцы с экрана, система будет генерировать сообщения для плавного завершения манипуляции вращения с заданным замедлением или смещением. Кроме того, можно ограничить область, в которой выполняются манипуляции. Например, элемент интерфейса допускает перемещение в заданной области. Если жестом заставить двигаться элемент по инерции, то при достижении границы области инерционный процессор будет формировать оповещения таким образом, чтобы элемент оставался внутри области, продолжая движение вдоль границы.

Идеи по использованию сенсорного ввода и технологии Multi-Touch в приложениях для интерфейсных устройств можно подчерпнуть, ознакомившись с ранее упомянутым пакетом «Touch Pack for Windows 7». 


Резюме

Сочетание простых в освоении средств разработки и передовых технологий Windows 7 делает Windows Embedded Standard 7 отличным выбором для разработки интерфейсных устройств. При построении устройств с сенсорным вводом и распознаванием множественных касаний следует учитывать, что не все сенсорные экраны поддерживают технологию Multi-Touch. Задействовать возможности Multi-Touch в интерфейсных приложениях позволяет расширенное API, с помощью которого можно реализовать интуитивно понятное и реалистичное взаимодействие с устройством. 


Статья опубликована в журнале «ИСУП», № 4(28)_2010

П.В. Белевский, Системный инженер, 
ООО «Кварта Технологии», г. Москва,
тел.: (495) 234-40-18,
e-mail: mse@quarta.ru