Hi,

Was just writing a test for parameter enough and notice an issue (sonar cube 
thought something was up as well):

This line in IsoTPProtocol:
out.writeByte((byte) ((tsap.getRackNumber() << 4) | (tsap.getSlotNumber())));

I think should be:
out.writeByte((byte) ((tsap.getRackNumber() << 4) | (tsap.getSlotNumber() & 
0x0F)));

Is it right to assume that rack and slot have a maximum value of 128 as both 
are packed into a single byte here. Is that always the case? I see that 
parseCallParameter for instance assumes this.

If so it's probably not a big deal as a slot number that is passed in is never 
going to be too large and overwrite the rack 1/2 of that byte but may be best 
to make the change just in case it ever does.

Perhaps we should make that more implicit in the interface and not use bytes 
but classes for rack and slot?

Thanks,
Justin

Reply via email to