Java ASCII Decoder

robopy

Cadet 3rd Year
Registriert
Jan. 2008
Beiträge
57
huhu community

ich bin gerade mit einem eigentlich einfachen problem überfordert ;) ich kriege über usb einen input, der in ascii daherkommt (mit diversen steuerzeichen). es sind die renndaten einer carrera autorennbahn.
wie entschlüssle ich den input (ascii) in für mich was brauchbares? gibts da schon was fertiges von java?
ich will ja nur die id des autos und die zeit der steuerung (in millisekunden).

unter diesem link findet ihr die codierung des inputs:
http://www.slotbaer.de/index.php/carrera-digital-124132/133-d132-a-d124-cu-rundenzaehler-protokoll

bin sehr dankbar über eure hilfe :)
gruss peter
 
Was benutzt du denn in deinem Programm, um den Input einzulesen? Und als was für ein Objekt bekommst du ihn?
 
ich benutze die rxtx-api:
http://rxtx.qbang.org/wiki/index.php/Main_Page

und das ist meine empfangsmethode:

Code:
void serialPortDatenVerfuegbar() {
        try {
            byte[] data = new byte[150];
            int num;
            while (inputStream.available() > 0) {
                num = inputStream.read(data, 0, data.length);
                System.out.println("Empfange: " + new String(data, 0, num));
            }
        } catch (IOException e) {
            System.out.println("Fehler beim Lesen empfangener Daten");
        }
    }
wie du siehst, speicher ich das ganze in ein bytearray.
die umwandlung in den string ist nur zur kontrolle während der entwicklung. ausser es wäre einfacher, damit weiter zu arbeiten ^^
 
Das Protokoll ist auf der HP, die du gepostet hast, beschrieben. Das ist schon sehr speziell - in Standardjava wirst du da nichts finden. Die Projektseite schreibt ja auch, dass es noch nicht viel Software dafür gibt.

Wenn du also nichts per Google&Co finden kannst, dann wirst du das Protokoll für die handvoll Befehle selber schreiben müssen.
 
Wenn du die Daten in einen String umwandelst, dann hast du sie ja schon im passenden Format. Damit kannst du dann das Protokoll implementieren.
 
Zurück
Oben