31.03.2009, 21:30
(31.03.2009, 13:06)hari37666 Wrote: Gibt es eine Möglichkeit alle Punkte zu wandeln?
Hallo Hans,
das Problem sind die Prüfsummen - nur Zeilen mit korrekter Prüfsumme werden von RouteConverter als Position angezeigt. Die Prüfsummen kannst Du per Hand berechnen:
Code:
byte computeChecksum(String line) {
byte result = 0;
for (int i = 0; i < line.length(); i++) {
result ^= line.charAt(i);
}
return result;
}
boolean hasValidChecksum(String line) {
String lineForChecksum = line.substring(1, line.length() - 3);
byte expected = computeChecksum(lineForChecksum);
String actualStr = line.substring(line.length() - 2);
byte[] actual = HexDecoder.decodeBytes(actualStr);
if (actual.length != 1 || actual[0] != expected) {
String expectedStr = HexEncoder.encodeByte(expected);
log.severe("Checksum of '" + line + "' is invalid. Expected '" + expectedStr + "' but found '" + actualStr + "'");
return false;
}
return true;
}Oder ich bringe RouteConverter bei, die Prüfsumme gegebenenfalls zu ignorieren.
--
Christian
Christian
