Обзор платформы датчика и расположения Windows
Операционная система Windows 7 обеспечивает встроенную поддержку устройств датчиков. Это включает поддержку датчиков расположения, таких как УСТРОЙСТВА GPS. В рамках этой поддержки платформа датчика и расположения Windows предоставляет стандартный способ для производителей устройств предоставлять устройствам датчика разработчикам программного обеспечения и потребителям. В то же время платформа предоставляет разработчикам стандартизированный API и интерфейс драйвера устройств (DDI) для работы с датчиками и данными датчиков.
Сведения о устройствах датчиков
Датчики приходят во многих конфигурациях и, с определенной точки зрения, почти все, что предоставляет данные о физических явлениях, можно назвать датчиком. Хотя обычно датчики считаются аппаратными устройствами, логические датчики также могут предоставлять информацию с помощью эмуляции функций датчиков в программном обеспечении или встроенном ПО. Кроме того, одно аппаратное устройство может содержать несколько датчиков.
Платформа датчика Windows и расположения упорядочивает датчики в категории, представляющие широкие классы устройств датчиков и типы, представляющие определенные виды датчиков. Например, датчик в контроллере видео игры, который обнаруживает положение и движение руки игрока (возможно, для видео боулинг игры) будет классифицироваться как датчик ориентации, но его тип будет 3-D Accelerometer. В коде Windows представляет категории и типы с помощью глобальных уникальных идентификаторов (GUID), многие из которых предопределяются. Производители устройств могут создавать новые категории и типы, определяя и публикуя новые идентификаторы GUID, когда это необходимо.
Устройства расположения составляют одну особенно интересную категорию. К настоящему моменту большинство людей знакомы с глобальными системами позиционирования (GPS). В Windows датчик GPS входит в категорию "Расположение". Категория "Расположение" может включать другие типы датчиков. Некоторые из этих типов датчиков основаны на программном обеспечении, таких как сопоставитель IP-адресов, предоставляющий сведения о расположении на основе интернет-адреса, триангулятор мобильной телефонной башни, который определяет расположение на основе близлежащих башен, или поставщик сетевых расположений Wi-Fi, который считывает сведения о расположении из подключенного беспроводного сетевого концентратора.
О платформе
Платформа датчика Windows и расположения состоит из следующих компонентов разработчика и пользователей:
- DDI позволяет Windows предоставлять стандартный способ подключения устройств датчиков к компьютеру и предоставлять данные другим подсистемам.
- API датчика Windows предоставляет набор методов, свойств и событий для работы с подключенными датчиками и данными датчиков.
- API расположения Windows, который основан на API датчика Windows, предоставляет набор программных объектов, включая объекты скриптов для работы с сведениями о расположении.
- Панель управления "Расположение" и "Другие датчики" позволяют администраторам компьютеров задавать датчики, включая датчики расположения для каждого пользователя.
В следующих разделах описывается каждый из этих компонентов.
Схема архитектуры
На следующей схеме показана связь между компонентами.
Интерфейс драйвера устройства
Производители датчиков могут создавать драйверы устройств для подключения датчиков к Windows 7. Драйверы устройств датчика реализуются с помощью модели драйвера переносимых устройств Windows (WPD), которая основана на платформе драйвера пользовательского режима Windows (UMDF). Многие драйверы устройств написаны с помощью этих платформ. Так как эти технологии установлены, опытные программисты драйверов устройств найдут написание драйвера датчика, чтобы быть знакомой задачей. DDI датчика использует определенные типы и интерфейсы данных UMDF и WPD, а также определяет команды и параметры WPD для конкретного датчика, где это необходимо. Дополнительные сведения о создании драйверов устройств датчиков см. в комплекте драйверов Windows.
API датчика
API датчика позволяет разработчикам C++ создавать программы на основе датчиков с помощью набора COM-интерфейсов. API определяет интерфейсы для выполнения распространенных задач программирования датчиков, которые включают управление датчиками по категориям, типу или идентификатору, управлению событиями датчиков, работе с отдельными датчиками и коллекциями датчиков и работе с данными датчика. Пакет SDK для Windows включает файлы заголовков, документацию, примеры и средства, помогающие разработчикам программного обеспечения использовать датчики в программах Windows. В этой документации описывается API датчика.
API расположения
В основе API датчика API расположения можно легко получить данные о географическом расположении при защите конфиденциальности пользователей. API расположения предоставляет свои функциональные возможности с помощью набора COM-интерфейсов, представляющих объекты. Эти объекты можно использовать программистами, которые понимают, как использовать COM с помощью языка программирования C++ или на языках сценариев, таких как JScript. Поддержка сценариев обеспечивает простой доступ к данным о расположении для проектов, работающих в зоне локального компьютера, таких как гаджеты. Пакет SDK для Windows включает файлы заголовков, документацию (включая справочную документацию по скриптам), примеры и средства, помогающие разработчикам веб-приложений использовать сведения о расположении в своих программах.
Расположение и другие датчики панель управления
Windows 7 включает панель управления, которая позволяет администраторам компьютеров включать или отключать системные датчики или для каждого пользователя. Поскольку некоторые датчики могут предоставлять конфиденциальные данные, этот пользовательский интерфейс позволяет администраторам контролировать, имеют ли все программы доступ к каждому датчику для каждого пользователя. Пользователи также могут просматривать свойства датчика и изменять описание датчика, отображаемое в пользовательском интерфейсе.
Панель управления также предоставляет страницу расположения по умолчанию, чтобы пользователи могли предоставлять свое расположение. Если датчик недоступен, платформа будет использовать предоставленное пользователем расположение. Пользователи могут предоставлять поля гражданских адресов, включая адрес улицы, город, штат или провинцию, а также страну или регион.