Ich habe einen Kartenautomaten und eine Android-App. Die Android-App wird über ein serielles Kabel über einen USB-zu-RS232-Konverter mit dem Kartengerät verbunden. Die Android-App läuft als Ionic Cordova-App und nutzt die Bibliothek com.github.mik3y:usb-serial-for-android:3.4.3.
Allerdings sind wir es Probleme beim Parsen der Antwort von der Maschine. Die Bibliothek stellt die Methode bereit:
Code: Select all
public void onNewData(byte[] data)
Code: Select all
0x06 0x01
Code: Select all
0x02 seqNumber data 0x03 0x08 0x09
0x02 markiert den Anfang der Antwort.
0x03 markiert das Ende der Antwort.
0x08 und 0x09 stellen die CRC-Werte dar, die sich je nach Daten ändern.
Problem:
Wir müssen:
Überprüfen Sie die Bestätigung.
Akkumulieren die Antwortblöcke.
Überprüfen Sie den CRC.
Dekodieren Sie alles innerhalb von 900 ms nach dem Senden der Anfrage an die Maschine.
Derzeit erreichen wir dies in etwa 4 Sekunden, was zu langsam ist.