Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

в 8:11, , рубрики: SDK, windows, Windows8, метки: ,

В современных планшетах, число датчиков достаточно велико. Не удивлюсь, если их будет достаточно чтобы управлять ракетой. WinRT имеет достаточно простой API для работы с датчиками:

  • Геолокация
  • Акселерометр
  • Сенсор Ориентации
  • Камера
  • Компас

По рассказам старожил разработки, раньше работа с сенсорами в Windows была далеко не самой простой, на настольных ПК и даже на ноутбуках в этом не было ни какого смысла. Сейчас мир меняется, и на современных планшетах с сенсорами можно творить разные «магические» штуки, производя неизгладимое впечатление на пользователя.

В первой статье было про Примеры использования Windows8 SDK. Часть 1. API системы
А в третьей будет про Примеры использования Windows8 SDK. Часть 3. GUI системы

Работа с геолокацией

GeolocationCS
Теперь Вы знаете мои координаты. Они явно получены от Wi-Fi вышек, т.к. GPS в моем ноутбуке точно нет.
Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

Код прост до безобразия: мы создаем объект и просто получаем координаты.
Плюсом в данном случае является то, что пользователь должен явно разрешить приложению отслеживать свое местоположение.
Конфиденциальность личных данных превыше всего!

Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

Так же мы можем подписаться на события изменения координат пользователя или состояния использования геокоординат
Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры
Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

Камера

Камера может снимать фото или видео. Разрешение задается программно и зависит от разрешающей способности камеры.
Код выглядит так:
Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

Сначала мы устанавливаем параметры камеры (формат и размер изображения).
Затем мы ждем, когда камера сфотографирует. Фотографирование происходит на эмуляторе по щелчку мыши.
До того, как камера сделает фото (до щелчка мыши), код написанный после
StorageFile file = await dialog.CaptureFileAsync(CameraCaptureUIMode.Photo);
выполняться не будет.
Как только фотографирование произведено, мы просто отображаем полученное фото.
Так выглядит предварительный просмотр изображения:
Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

Код работы с видео абсолютно идентичен:
Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры
По одному щелчку видео начинает записываться, по второму оканчивается. Далее появляется экран preview, как и в случае работы с фото. Мы можем посмотреть полученный кусочек видео.
Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

Использование акселерометра

К сожалению у меня на ноутбуке нет акселерометра (а, может, и к счастью). В симуляторе я не нашел ничего похожего на него, поэтому я не могу показать его работу, но могу показать код работы с ним.
Типичное использование акселерометра – в качестве контроллера для игр, хотя, наверно, его можно использовать не только так.

Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

Мы подписываемся на событие изменения положения устройства в пространстве и получаем значения по 3-м осям.
С учетом того, что датчик достаточно точный (по крайней мере, такой был на wp7), можно сказать, малейшее движение вызовет этот метод.
Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

Сенсор Ориентации

В SDK есть 2 разных примера работы с сенсором ориентации.
Первый сенсор простой, типа «получить ориентацию с точностью до 90 градусов, и лежит ли устройство экраном вверх или вниз». Это интересно, чтобы, например, отображать контент по-разному или когда нужны достаточно грубые значения положения девайса.

Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

Второй сенсор более сложный: он возвращает значения по осям. Его можно использовать в играх.
Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

Компас

Код очень простой и похожий на код акселерометра. Мы подписываемся на изменение расположения устройства относительно направления, и можем получить направление до серевного полюса географического и до северного магнитного полюса.

Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

В самом компасе мы можем установить интервал, через который мы будем снимать показания, узнать минимальный интервал снятия значения.

Примеры использования Windows8 SDK. Часть 2. Датчики и Сенсоры

К сожалению у меня на ноутбуке нет компаса, по этому показывать экран пустой я не стал.

Заключение

В новом WinRT API работа с сенсорами организована крайне просто. По набору датчиков, современный планшет вполне может быть системой наведения ракеты мне кажется… Акселерометр- может быть в качестве гераскопа(гробо конечно, но теоретически можно), компас есть, координаты географические есть, камера для показа оператору есть… В общем прикручиваем к ракете, придумываем как связь организуем и в бой…

Мой ноутбук Lenovo X220 не является планшетом, который выдавали на Build конференции в США, но на в нем отлично работают камера и определение координат через Wi-Fi точки.
Я уверен, что когда MS будет продвигать ОС в массы, то для разработчиков будут такие же конкурсы приложений, где одним из ключевых параметров будет использование возможностей ОС, в том числе датчиков и сенсоров.
WinRT сильно облегчает задачу работы с сенсорами и датчиками

P.S. над моей фото с камеры, сильно не смеяться… Посмотрел бы я на Вас в 6 утра воскресенье… когда я делал эту статью. ;)

Автор: SychevIgor

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js