Although the 4 constituent bytes of the 32-bit data packet are read in the correct order, and the 'inverse' (logical NOT) verification passes, the bit order in each byte is reversed. They are read MSB->LSB whereas the protocol requires LSB->MSB.
This means that:
NEC commands whose binary representation is non-palindromic (i.e. most of them) are incorrectly reported. e.g. 0xA2 (0b10100010) is reported as 0x45 (0b01000101)
NEC non-extended range addresses in the 8-bit range whose binary representation is non-palindromic (i.e. most of them) are incorrectly reported in the same way as commands.
NEC extended range 16-bit addresses are incorrectly reported.
Resolved by #423, although it's likely to be superceded shortly by PR for #421 which will also include the fix as part of a refactor.
Found whilst adding support for #421:
Although the 4 constituent bytes of the 32-bit data packet are read in the correct order, and the 'inverse' (logical NOT) verification passes, the bit order in each byte is reversed. They are read MSB->LSB whereas the protocol requires LSB->MSB.
This means that:
0xA2
(0b10100010
) is reported as0x45
(0b01000101
)Resolved by #423, although it's likely to be superceded shortly by PR for #421 which will also include the fix as part of a refactor.