Павел Белевский Системный инженер по встраиваемым решениям, Кварта Технологии pavelb@quarta.ru Microsoft TechDays Тенденции Промежуточный GPS драйвер (GPSID) Location Framework Microsoft TechDays В зависимости от местоположения Новости Погода Дорожная обстановка Информация об инфраструктуре Заправки Магазины Поиск Служба доставки Супермаркет Microsoft TechDays Сложность получения информации о местоположении GPS/GSM/Веб-сервисы и т.п Разнообразие аппаратного оборудование с различными возможностями Сложности с программированием и конфигурированием Меняющиеся стандарты При разработке нового приложения приходится «изобретать велосипед» Microsoft TechDays Считывание информации как правило осуществляется через COM-порт Программа выглядит примерно так: CreateFile(“COM5:”, …); ReadFile(szBuf, buflen, …); Parse(szBuf); CloseFile(); Пример строки GPS-данных (NMEA 0183): $GPGGA,171934.000,5539.3487,N,03731.843 3,E,1,05,3.8,226.5,M,14.5,M,,0000*50 Microsoft TechDays CreateFile(“COM5:”, …); Необходимо знать имя порта. Таким образом в приложении должен быть реализован интерфейс и пользователь сам его вводит. Parse() В сотовых сетях не NMEA протокол и этот протокол разный у каждого производителя CloseFile(); В драйверах не реализовано мультиплексирование – одновременно может работать только одно приложение Microsoft TechDays Получение информации о местоположении является непростой задачей Приложения могут блокировать доступ для других приложений Проблемы конфеденциальности В итоге: отказаться или потратить время на разработку Microsoft TechDays Решает большинсво проблем с получением информации о местоположении Располагается между приложением и GPS драйвером Доступен начиная с Windows Embedded CE 6.0, а также в Windows Mobile 5 и 6 Microsoft TechDays Microsoft TechDays Удобство при разработке и тестировании GPSID-приложений Нет необходимости использовать реальное оборудование GPS-приемники не работают в помещениях Наиболее интересно в процессе движения GPSID в режиме эмуляции GPSID считывает NMEA-строки из файла Прозрачно приложений Microsoft TechDays Наиболее востребована обратная совместимость Ранее написанные приложения могут работать с GPSID только через COM-порт GPSID реализует NMEA-протокол через виртуальные COM-порты (COM0-9) Приложения работают с виртуальным портом, аналогично реальному GPSID позволяет работать одновременно нескольким приложениям Microsoft TechDays Не-GPSID Не- GPSID GPSID GPSID Приложение1 Приложениe2 Приложение1 Приложение2 Мультиплексор (COM5) Слой API Промежуточный драйвер GPS Анализатор NMEA Интерфейс устройства Драйвер GPS (COM-порт или эмуляция) Генерирует NMEA; Подключен к COM4 Microsoft TechDays Разработка становится ещё проще Сотовые телефоны не предоставляют NMEA-протокол В CE 6.0 GPSID позволяет GPS-драйверу заполнить GPS_POSITION путем отправки IOCTL Исключается лишнее преобразование NMEA-строк в структуру GPS_POSITION GPSID генерирует NMEA для унаследованных приложений GPSID сохранил поддержку GPSприемников по NMEA-протоколу Microsoft TechDays Не-GPSID Не- GPSID GPSID GPSID Приложение1 Приложениe2 Приложение1 Приложение2 Мультиплексор (COM5) Слой API Промежуточный драйвер GPS Генератор NMEA Анализатор NMEA Интерфейс устройства Драйвер GPS (COM-порт или эмуляция) Генерирует NMEA; Подключен к COM4 Microsoft TechDays Ориентирован на GPS-информацию Координаты широты и долготы Не предоставляет информацию в виде адреса и т.п. Microsoft TechDays Location Framework (LF) это решение вида CкажиГдеЯНахожусь(); Полностью абстрагирует от «железа» Предоставляет различную информацию о местоположении (адрес, ближайшие АЗС и т.п.) Расширяемость Конфендециальность Доступен начиная с CE 6.0 Microsoft TechDays Основная модель программирования Аналогично GPSID, приложения запрашивают необходимую информацию При смене местоположения или состояния аппаратного оборудования устанавливается событие Приложения могут зарегистироваться на различные типы отчетов (координаты, адрес и т.п.) Microsoft TechDays Концепция отчетов Отчет - это структура данных описывающих местоположение по аналогии с GPS_POSITION в GPSID Поддерживаемые типы отчетов Широта/долгота Ближайшие WiFi точки доступа Здание/этаж/комната Адрес Возможность добавлять типы отчетов Например, ближайшие АЗС Microsoft TechDays Концепция библиотек дополнений Определением местоположения занимается библиотека (плагин) загруженная в Location Framework Поддерживаемое оборудование GPS WiFi точки доступа Эмуляция RFID Веб-службы На текущий момент реализованы 3 первых Microsoft TechDays Microsoft TechDays Приложение Движок Location Framework Провайдеры Провайдер GPSID Преобразователи Преобразователь Провайдер 802.11 Microsoft TechDays для Веб-сервиса Провайдеры один из классов библиотек расширения (плагинов) Работают непосредственно с «железом» или с использованием сети GPSID WiFi Эмуляция RFID Полностью независимы Microsoft TechDays Преобразователи это другой класс библиотек для LF Занимаются преобразованием одного типа данных в другой Например, для получения координат используя ближайшие точки доступа Работают совместно с провайдерами, которые создают для них отчеты Microsoft TechDays Примеры Эмулятор Выполняет преобразование на основе отчетов в виде XML-файлов Веб-сервис 802.11 -> координаты, адрес и т.д. Ориентирование в организации 802.11 -> здание/этаж/комната Microsoft TechDays Необходимо предоставить определенный интерфейс ProviderInitialize – вызывается один раз при инициализации Location Framework ProviderGetLocation – когда приложение хочет получить информацию о местоположении ProviderStop – приложение больше не нуждается в определении местоположения ProviderUnInitialize – вызывается при остановке LF PROVIDER_CONTROL_BLOCK NewProviderReport callback – доступен новый отчет ProviderUnavailable – провайдер не доступен Разработка преобразователей ведется по аналогии Microsoft TechDays Сценарий: Устройство в GPS-приемником, но GPS может выдавать недостоверные данные Дополнительный провайдер работает через GPSID и создает отчет LOCATION_REPORT_LATLONG_UNCERTA IN (пользовательский тип отчета) Преобразователь проверяет данные и создает отчет LOCATION_REPORT_LATLONG Приложение остается зарегистрированным на Microsoft TechDays GPSID and Location Framework являются универсальным решением для определения местоположения и обеспечения конфеденциальности При разработке были учтены современных требований к конфеденциальности и безопасности GPSID и Location Framework позволяют обеспечить конфедециальность через «trust-only» режим Информацию получают только доверенные приложения Microsoft TechDays GPSID Абстрагирует производителей «железа» и разработчиков приложений Позволяет одновременно работать нескольким приложениям Поддержка унаследованных приложений Location Framework Разнообразные источники информации о местоположении Разнообразные варианты получения информации Расширяемость и конфеденциальность Microsoft TechDays Русcкоязычный форум для разработчиков встраиваимых систем www.msembedded.ru/forum Книга «Введение в Windows Embedded CE 6.0 R2» Microsoft TechDays © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. Microsoft TechDays