I’m trying to understand a little more about the XGauge functions of my ScanGauge so I read: http://www.scangauge.com/support/pdfs/XGaugeCoding.pdf But already on the first page I got confused. Under CAN TXD it states: The ScanGauge II looks for a reponse ID which has the high bit of the third character flipped from that of the transmit ID. The lower 3 bits of the third character are “don’t care” bits for the receive. As an example they give a TX ID of 0745 and a response could be expected within the 0748 to 074F range. I don’t exactly understand what ‘flipping’ means and also the ‘third character’ is confusing, do the mean the second byte (so characters 3 and 4)? But if I understand correctly using the CAN protocol the RX ID can be found in the range: starting from 3 bits higher than the TX ID of the second byte (45 + 4 = 48) to 8 bits higher (48 + 8 = 4F). Do I understand this correctly?
I agree this is confusing, and I haven't tried to set up new xgauges myself (just use ones that others have documented). But going by the example, it looks like they're talking about the last nibble. That kinda makes sense if 'character' = nibble, and you start from 0, not 1. In ASCII, a char (or character) is a full byte, so this would be a non-standard way to look at it, but given the example it seems to make the most sense. So in this case, ignoring the 074 part of it, 5 = 0101(binary), flipping (inverting, or more properly, taking the one's complement) the high bit would make it 1101(binary), but the lower 3 bits are ignored on the response, so it could be anything from 1000 (binary = 8 hexadecimal) to 1111 (binary = F hexadecimal). Does this help?
Yes that would make sence nerfer; flipping the most significant binary bit. Would that imply that either 8 or F is always at the top of the receiving range? So for example TX ID was 0748, the '8' binary would be 1000 and flipping the MSB the range would be 0000 to 1000 is 0 to 8 hexadicimal. The RX ID range would be 0740 to 0748 ?