I tend to agree. As I mentioned, the official UEI XMP executor ignores the 4th nibble of fixed data as far as what data is actually transmitted (i.e., it does an OR of $0F on that byte). So far, they have used only one of those bits as a parameter to control the final frame toggle. I reserved bit 7 of the 7th byte in my executor for the same purpose (though it is not implemented yet). In other similar situations, like the NEC you mentioned, we've let optional parameters control operational characteristics such as this. In this case, we'd have a Parm that defauilts to 15, and could be 7 if the final frame toggle is activated. Or, it could be 0 and 8, and we'd do the inversion in RM & KM.mathdon wrote:I think we should regard that nibble 4 as a protocol parameter rather than an OEM code, and name it Parm or something similar, as in the NEC protocols in RM.
I would much rather see a single OEM Code byte for the 3rd byte. Given that the UEI executor always transmits the 4th nibble as $F, I would not expect to ever find a different value being decoded, regardless of what fixed data is used for the executor. Should we someday find something that is other than $F being transmitted, we can always add another OEM code or parameter. This would also require a different executor, as the current official one is incapable of transmitting anything else.
As to the XMP-1/XMP-2 situation, all DecodeIR needs to do is indicate which one is applicable to the data being decoded. Exactly how the user chooses one or the other need not be a concern to DecodeIR, as long as the indication is clear. I do not this this should be a "parameter". 3FG's checkbox is easily understood, as long as DecodeIR indicates such.
... except for the 4th nibble of fixed data, which it forces to $F, and the 2nd nibble of fixed data, which it ignores and replaces with an internally calculated checksum.The Robman wrote:The 4 bytes of fixed data that the UEI executor uses are all in the signal exactly as you see them.
Agreed with respect to the "44" byte, but the "F" byte is not data. The executor is hard-coded to transmit it as "F". As fixed data, it controls behavioral characteristics of a specific UEI executor, and I think it should be called a parameter. If UEI were to change their mind about how they arrange & use the fixed data, how would DecodeIR be aware of it without any change in the actual data transmitted?The Robman wrote:What we've been debating is how to report them as device codes. In most cases the 4th nibble is "F" and the 3rd byte is "44", so when we see a deviation from that, we can consider those to be different OEM codes.
