IR_TRANSMIT_PARAMS.Значения маски порта передачи?

StackOverflow https://stackoverflow.com/questions/1222156

  •  10-07-2019
  •  | 
  •  

Вопрос

Я везде осмотрелся и не могу найти никакой документации о значениях, которые нужно поместить в TransmitPortMask структуры IR_TRANSMIT_PARAMS для использования с IOCTL_IR_TRANSMIT.

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

Таким образом, я впервые попробовал:

PORT1 = 0x1 
PORT2 = 0x2

Это не сработало!

Затем, на своем компьютере, я перепробовал все значения и обнаружил, что:

PORT1 = 0x4
PORT2 = 0x2

Что является довольно странными значениями...особенно для порта 1.

Конечно, если я поставлю -1 (или ~ 0, или 0xFFFFFFFF), он передаст данные на все порты одновременно.Но я хочу контролировать отдельные порты.

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

Поэтому я спрашиваю, какие значения я должен ввести в TransmitPortMask?

  • Я использую 32-разрядную версию Windows 7 RC.
  • Я использую Microsoft IR Blaster (не просто совместимый, настоящий Microsoft), который поставляется с пультом дистанционного управления Microsoft Media Center
Это было полезно?

Решение

Я нашел свой ответ.Я размещаю это здесь для потомков

Порты - это младшие значащие биты маски, но последний порт в качестве LSBit.

example with 1 port:  ---- ---- ---- ---1 LSB
example with 2 ports: ---- ---- ---- --12 LSB
example with 3 ports: ---- ---- ---- -123 LSB
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top