
I'll be home tonight and try it with a controller.
So - the PID - get from PID[0] - if this is >= 128 then the 16 bit value is PID_Data[0] (NOT PID_Data[0] + PID_Data[1]) As mentioned - the value might have the MSB and LSB swapped. If PID[n] <= 127 then PID_Data[n] = 8 bit value (padded to 16 bits with 0 in MSB)Regarding the row of two byte PIDs, for example: engine speed - PID 190, data 087 009 - PID_data[0] /; 087;/ + (PID_data[1] /;009;/<<8) I get a 16-bit value and multiply it by 0.25 (res/bit)