Serialport Packetweise auslesen

B

ByeBye 46085

hi,
für eine Projektarbeit muss ich Daten an den Serialport senden und danach die Antwort wieder einlesen.
Das Problem, dass ich habe ist, dass ich mit 8 Byte grossen Datenpaketen arbeite ich jedoch nicht hinbekommen habe. Das er den Buffer 8-Byte-weise einliesst.
Java:
		if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE && ins.available()> 8){
			  System.out.println(ins.available());
			  byte[] readBuffer = new byte[20];
		    try {
		      while (ins.available() > 0) {int numBytes = ins.read(readBuffer);}
		      String nachricht = new String(readBuffer);
		      ausgabe.append(nachricht);
Das ist ein abgeändertes Codebeispiel aus dem Internet mit dem ich momentan experimentiere.
Die Abfrage ins.avaible()>8 hilft auch nicht. ins ist der Inputstream. Weiss jemand wie man Packetweise arbeiten kann? Welche Bytes werden jeweils noch zusätzlich zu meinen Daten mitgeschickt? (Ich arbeite mit einem modifizierten Stecker sodass alle gesendeten Daten sofort in den Eingang gelangen.

Gruss Markus
 
Zuletzt bearbeitet von einem Moderator:
Kenn mich zwar mit dem Serialport nicht aus, würde dir aber empfehlen den Buffer einfach mal auf 8 Byte zu dimensionieren ;)
Java:
byte[] readBuffer = new byte[8];

Dann solltest du dich mal mit dem Code auseinandersetzten und verstehen was da eigentlich passiert :)
Gruß
Tobias
 
Zurück