Управление радиоуправлением в режиме самолета

Начиная с Windows 8 операционная система Windows обеспечивает поддержку с помощью HID, для управления радиоуправлением в режиме самолета.

Архитектура и обзор

Цель режима самолета — разрешить производителю ПК предоставить кнопку или переключатель (и потенциально светодиодный индикатор для указания состояния), что позволяет пользователю включать или отключать все беспроводные элементы управления в одном снимке. Это в первую очередь позволяет пользователю, который должен включить или отключить режим самолета, чтобы сделать это программным способом, позволяя операционной системе (a) определять состояние коммутатора и (b) управлять различными беспроводными радио через программное обеспечение.

Windows обеспечивает поддержку следующих использований HID на странице использования для универсального рабочего стола.

Идентификатор использования Имя использования Тип использования
0x000C Беспроводные радио-элементы управления CollectionApplication (CA)
0x00C6 Беспроводная радиокнопка Управление "Вкл/выкл" (OOC)
0x00C7 Беспроводной радиосветодиодный индикатор Элемент управления "Вкл/выкл." (OOC)
0x00C8 Переключатель беспроводного радиосигнала Элемент управления "Вкл/выкл" (OOC)

Ниже приведена архитектурная схема клиента HID, которая обеспечивает поддержку радиоуправления или режима самолета.

Архитектура режима самолета.

Служба обнаружения ShellHW (SHSVCD.dll) — это драйвер или служба клиента HID, которая работает в пользовательском режиме и обеспечивает поддержку устройства управления радиосвязью. Он отслеживает наличие коллекции верхнего уровня типа HID

  • USAGE_PAGE (универсальный рабочий стол) 05 01
  • USAGE (беспроводное радиоуправление) 09 0C

Пример дескриптора отчета

В следующем разделе приведены примеры дескрипторов отчета, которые должны использовать производители пк. Обратите внимание, что если коллекция верхнего уровня входит в дескриптор отчета, который уже имеет другую коллекцию верхнего уровня, идентификатор отчета должен быть включен (не показан в примерах ниже).

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

  • Кнопка без состояния часто используется на кнопках управления клавиатурой (самостоятельно или в сочетании с кнопкой функции во многих мобильных системах, например, Fn+F5).
  • Переключатель ползунка часто используется в мобильных системах с физическим ползунком включения/выключения (например, в ноутбуках с переключателем режима включения/выключения в самолете).
  • Светодиод часто используется как автономный индикатор режима самолёта или в сочетании с кнопкой без фиксации состояния или слайдерным переключателем. Пользователям окна не требуется использовать этот светодиодный индикатор в системах мобильных форм-факторов, так как в пользовательском интерфейсе в режиме самолета есть визуальное указание.

Кнопка без состояния, без светодиода

USAGE_PAGE (Generic Desktop)                   05 01 
USAGE (Wireless Radio Controls)                09 0C 
COLLECTION (Application)                       A1 01 
LOGICAL_MINIMUM (0)                            15 00 
LOGICAL_MAXIMUM (1)                            25 01 
USAGE (Wireless Radio Button)                  09 C6 
REPORT_COUNT (1)                               95 01 
REPORT_SIZE (1)                                75 01 
INPUT (Data,Var,Rel)                           81 06 
REPORT_SIZE (7)                                75 07 
INPUT (Cnst,Var,Abs)                           81 03 
END_COLLECTION                                 C0

Бесконтактная кнопка с LED индикатором

USAGE_PAGE (Generic Desktop)                    05 01 
USAGE (Wireless Radio Controls)                 09 0C 
COLLECTION (Application)                        A1 01 
LOGICAL_MINIMUM (0)                             15 00 
LOGICAL_MAXIMUM (1)                             25 01 
USAGE (Wireless Radio Button)                   09 C6 
REPORT_COUNT (1)                                95 01 
REPORT_SIZE (1)                                 75 01 
INPUT (Data,Var,Rel)                            81 06 
REPORT_SIZE (7)                                 75 07 
INPUT (Cnst,Var,Abs)                            81 03 
USAGE (Wireless Radio LED)                      09 C7 
REPORT_SIZE (1)                                 75 01 
OUTPUT (Data,Var,Rel)                           91 02 
REPORT_SIZE (7)                                 75 07 
OUTPUT (Cnst,Var,Abs)                           91 03 
END_COLLECTION                                  C0

Переключатель ползунка (без светодиодных индикаторов)

USAGE_PAGE (Generic Desktop)                    05 01 
USAGE (Wireless Radio Controls)                 09 0C 
COLLECTION (Application)                        A1 01 
LOGICAL_MINIMUM (0)                             15 00 
LOGICAL_MAXIMUM (1)                             25 01 
USAGE (Wireless Radio Slider Switch)            09 C8 
REPORT_COUNT (1)                                95 01 
REPORT_SIZE (1)                                 75 01 
INPUT (Data,Var,Abs)                            81 02 
REPORT_SIZE (7)                                 75 07 
INPUT (Cnst,Var,Abs)                            81 03 
END_COLLECTION                                  C0

Ползунковый переключатель со светодиодным индикатором

USAGE_PAGE (Generic Desktop)                    05 01 
USAGE (Wireless Radio Controls)                 09 0C 
COLLECTION (Application)                        A1 01 
LOGICAL_MINIMUM (0)                             15 00 
LOGICAL_MAXIMUM (1)                             25 01 
USAGE (Wireless Radio Slider Switch)            09 C8 
REPORT_COUNT (1)                                95 01 
REPORT_SIZE (1)                                 75 01 
INPUT (Data,Var,Abs)                            81 02 
REPORT_SIZE (7)                                 75 07 
INPUT (Cnst,Var,Abs)                            81 03 
USAGE (Wireless Radio LED)                      09 C7 
REPORT_SIZE (1)                                 75 01 
OUTPUT (Data,Var,Rel)                           91 02 
REPORT_SIZE (7)                                 75 07 
OUTPUT (Cnst,Var,Abs)                           91 03 
END_COLLECTION                                  C0

Только светодиодный индикатор (без кнопок и ползунков)

USAGE_PAGE (Generic Desktop)                   05 01 
USAGE (Wireless Radio Controls)                09 0C 
COLLECTION (Application)                       A1 01 
LOGICAL_MINIMUM (0)                            15 00 
LOGICAL_MAXIMUM (1)                            25 01 
USAGE (Wireless Radio LED)                     09 C7 
REPORT_COUNT (1)                               95 01 
REPORT_SIZE (1)                                75 01 
OUTPUT (Data,Var,Rel)                          91 02 
REPORT_SIZE (7)                                75 07 
OUTPUT (Cnst,Var,Abs)                          91 03 
END_COLLECTION                                 C0

Устранение распространенных ошибок

Совет #1. При использовании переключателя BUTTON производитель ПК должен отправлять один отчет HID при освобождении кнопки, а не при её нажатии. Это связано с тем, что кнопка переключателя обычно является относительным, а не абсолютным входом.

Совет 2: Использование HID для управления радиоустройствами в режиме "В самолете" работает только на мобильных системах (питание от батареи) и требует Windows 8 или более поздних версий Windows.

Совет #3. Дополнительные сведения о переключателе "Режим самолета" см. в техническом документе "Усовершенствования клавиатуры" в Windows 8 .

Совет 4. Для получения дополнительной информации о кнопках и чтобы убедиться, что вы используете правильное оборудование, пожалуйста, ознакомьтесь с требованиями к логотипу системы Windows 8.