Значения IR_TRANSMIT_PARAMS.TransmitPortMask? - PullRequest
0 голосов
/ 03 августа 2009

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

Вся документация гласит, что это «Битовая маска, содержащая порты для передачи».

Итак, я впервые попробовал:

PORT1 = 0x1 
PORT2 = 0x2

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

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

PORT1 = 0x4
PORT2 = 0x2

Это довольно странные значения ... особенно для PORT1.

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

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

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

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

1 Ответ

1 голос
/ 01 ноября 2013

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

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

example with 1 port:  ---- ---- ---- ---1 LSB
example with 2 ports: ---- ---- ---- --12 LSB
example with 3 ports: ---- ---- ---- -123 LSB
...