Valori IR_TRANSMIT_PARAMS.TransmitPortMask?
Domanda
Mi sono guardato intorno ovunque e non riesco a trovare alcuna documentazione sui valori da inserire nella struttura TransmitPortMask della struttura IR_TRANSMIT_PARAMS da utilizzare con IOCTL_IR_TRANSMIT.
Tutta la documentazione dice che è " Una maschera di bit che contiene le porte su cui trasmettere "
Quindi, per prima cosa ho provato:
PORT1 = 0x1
PORT2 = 0x2
Non ha funzionato!
Quindi, sul mio computer, ho provato tutti i valori e ho scoperto che:
PORT1 = 0x4
PORT2 = 0x2
Che è una specie di valori strani ... specialmente per PORT1.
Naturalmente, se inserisco -1 (o ~ 0, o 0xFFFFFFFF), trasmette i dati su tutte le porte contemporaneamente. Ma voglio controllare le singole porte.
Ora sto ricevendo report da alcuni utenti che dicono che non funziona sui loro sistemi, anche se hanno la stessa versione di Windows.
Quindi chiedo, quali sono i valori che dovrei inserire in TransmitPortMask?
- Uso Windows RC RC a 32 bit.
- Sto usando un Microsoft IR Blaster (non solo un compatibile, il vero Microsoft) fornito con un Microsoft Media Center Remote
Soluzione
Ho trovato la mia risposta. Lo pubblico qui per i posteri
Le porte sono i bit meno significativi della maschera ma l'ultima porta come LSBit.
example with 1 port: ---- ---- ---- ---1 LSB
example with 2 ports: ---- ---- ---- --12 LSB
example with 3 ports: ---- ---- ---- -123 LSB