SilverWii – что будет, если подсоединить WiiMote к внебраузерному приложению Silverlight через NESL (естественные расширения для MS Silverlight)
Да, я знаю… Silverlight, Silverlight, Silverlight...я знаю, совсем недавно вы получили хорошую порцию Silverlight и вот возвращаетесь к нему опять, но когда я увидел это, то не смог пройти мимо (я старался, но каждый раз перетасовывал список возможных сообщений, и это все время всплывало наверх…смешно!).
Подключаете Wiimote к приложению Silverlight? Присоединяйтесь, вы знаете, что это официально признано «забавным»…
«Когда впервые я услышал о естественных расширениях для Silverlight, то удивился: хорошо, а в каких ситуациях я могу использовать его? В каких сценариях? И вообще, это что-то действительно полезное? В этой статье я постараюсь одну из функций, включенных в NESL, возможность взаимодействия с датчиками движения. В конце концов, я использовал популярный контроллер wiimote, так как он оснащен встроенным акселерометром. Читайте остаток истории, чтобы узнать о результатах тестирования.
...»
Что представляет собой проект NESL?
Native Extensions For Microsoft Silverlight
« Хотя Silverlight 4 обеспечивает доступ к компонентам COM-автоматизации из внебраузерных приложений (OOB-приложений) с повышенным уровнем доверия, многие возможности платформы Windows не доступны через COM-автоматизацию. Что делает их также недоступными и для OOB-приложений. Native Extensions for Microsoft Silverlight(NESL) представляет собой попытку последовательного построения библиотеки компонентов, предоставляющими некоторые функции Windows через COM-автоматизацию, делающую их легко доступными для OOB-приложений Silverlight 4, работающих с повышенным уровнем доверия. Текущая версия NESL обеспечивает доступ к таким возможностям Windows 7, как сенсоры, переносные устройства, речь, панель задач и др. NESL состоит из набора библиотек реального времени для COM-автоматизации, библиотек оболочек Silverlight, используемых из OOB-приложений Silverlight 4, примеров приложений с исходными кодами, документации по API и руководства разработчика.
NEST v2
- Новые возможности
- Функции касания
- Поддержка жестов
- Поддержка обработки манипуляций
- Поддержка обработки инерции
- Информация о касаниях аппаратуры
- Поддержка области уведомлений Windows 7 (System Tray)
- Добавление/обновление/удаление значков уведомлений в области уведомлений
- Добавление/удаление всплывающих подсказок
- Реакция на уведомления и всплывающие подсказки
- Добавление/обновление/удаление контекстных меню к значкам уведомления
- Реакция на выбор пункта контекстного меню
- «Свернуть в область уведомлений»/«Восстановить из области уведомлений»
- Поддержка шаблона «Одного экземпляра приложения»
- Допускает работать только одному экземпляру приложения в любой момент времени
- Выдает предупреждение при попытке запуска второго экземпляра
- Предназначено для приложений, добавляющих себя в панель задач, и, следовательно, допускающих лишь один работающий экземпляр приложения.
- Функции касания
...
Какие API поддерживаются в NESLv1 ?
- Windows Sensor API
- Интегрирует в Silverlight-приложение датчики – акселерометры, датчики освещенности, компасы, гироскопы и т.д.
- Microsoft Speech API
- Преобразование текста в речь (синтез речи)
- Преобразование речи в текст (распознавание речи)
- Windows Portable Devices API
- Упорядочивает и предоставляет доступ с подсоединенных портативных устройств (камеры, телефоны, плееры, сканеры и т.д.)
- Интеграция с панелью задач Windows 7
- Списки переходов, перекрывающиеся значки, перекрывающиеся индикаторы выполнения, панели миниатюр и т.д.
- Кодирование потока локальной камеры и захват окна
- Кодирование видеопотока веб-камеры в mp4 (H.264/AAC-LC) формат
- Захват взаимодействия с пользовательским интерфейсом в качестве видео
- Перехват сообщений окна
- Перехват и реагирование на сообщения окна, посылаемые главному окну OOB-приложения Silverlight
Забавно, насколько простыми могут оказаться некоторые вещи при ретроспективном взгляде. Самой сложной частью этого проекта является подсоединение WiiMote к ПК. Остальное, как вы можете убедиться, рассматривая код, предельно просто, если вы используете мощь NESL.
Эта статья – прекрасное введение в код и NESL. Да, Silverlight 5 с функцией PInvoke позволяет делать подобные штуки легче, но сегодняшний день, это пока сегодняшний день, и если все что у вас есть это Silverlight 4, и вам нужно быть ближе к аппаратуре, то NESL и эта статья станут достойным чтением.
Резюме
В этой статье мы увидели, что, в сущности, нет пределов того, что Silverlight может фактически делать; мы можем даже заставить его говорить с wiimote. Главный инструмент для этого – NESL, библиотека, обеспечивающая дружественные для Silverlight классы оболочек и исполняемую среду, предоставляющую COM-автоматизацию для большинства функций платформы Windows 7. Насколько эффективен и практичен такой подход? В статье мы проверили API датчиков NESL и результаты выглядят обнадеживающе…