Hallo ich sitzte gerade vor einem Problem, bei dem ich wirklich nicht mehr weiter weiß!
Problem:
Ich habe ein Empfänger geschrieben der folgende Daten, welche über die RS232 eingehen, auslesen und verarbeiten soll:
[Header1 (1Byte)] [Data1 (3Byte)] [TimeStamp (3Byte)] [Header2 (1Byte)] [Data2 (3Byte)] [TimeStamp (3Byte)]
Ein komplettes Paket sind also 14 Byte. Der Empfang funktioniert auch ganz gut, zumindest wenn man die Auslese auf ein paar Minuten beschrenkt....
Selbst arbeite ich mit der javax.comm Bib. dort findet sich der Listener SerialPortEvent mit dem ich auch arbeite:
Wie oben zu sehen ist erstelle ich ein Byte array mit der Länge 14. Bei der Initialisierung des Serial Ports wurde auch der Befehl:... .enableReceiveThreshold(14) verwendet, der doch praktisch mir immer bei erreichen des internen Bufferstandes von 14 Byte ein Event auslöst. Im serialEvent werden nun die im Buffer vorhanden 14 byte in das Byte array readerBuffer eingelesen und in ein Textfile geschrieben. Im textfile sehen die daten dann so aus:
Anfangs ist noch alles ok:
aae58ef000001055d9bab4000010
aa7270f00000115565647c000011
aaff52f000001255f162e9000012
aa8c34f0000013557cc9ba000013
aa1916f0000014550875a6000014
aaa5f8f000001555934ca4000015
aa32daf0000016551ce9e9000016
aabfbcf000001755a797a8000017
aa4c9ef0000018553179eb000018
aad980f000001955bddfea000019
aa6662f000001a554982ee00001a
aaf344f000001b55d4a96800001b
aa8026f000001c55603ec800001c
aa0d08f000001d55ecaadb00001d
aa99eaf000001e55768ef900001e
aa26ccf000001f55ff984a00001f
aab3aef0000020558c7ada000020
aa4090f00000215518e1eb000021
aacd72f000002255a3154f000022
Später:
1855cef0e5042018aa00064b0420
195552f04d042019aa8cea4b043e
aacb60fc04213f55bf214904213f
aa5842fc042140553f76be042140
aae524fc04214155aa338e4b0420
1d55532aae04201daac0724b0420
1e55d8b56804201eaa4d524b0420
1f555978f704201faada364b0420
2055dbb7d8042020aa67164b0420
21555d84b8042021aaf3fa4b0420
2255e176b9042022aa80da4b0420
23556281a6042023aa0dbe4b0420
2455e3facf042024aa9a9e4b0420
255564aed8042025aa27824b044a
aa65f8fc04214b55b86dda04214b
aaf2dafc04214c553f29f704214c
aa7fbcfc04214d55c0814404214d
aa556866b5042029aa5b0a4b0420
2a55eba5a904202aaae7ea4b0420
Kurz: HILFE!!!!!!!!!!!!!!!!! :?:
Problem:
Ich habe ein Empfänger geschrieben der folgende Daten, welche über die RS232 eingehen, auslesen und verarbeiten soll:
[Header1 (1Byte)] [Data1 (3Byte)] [TimeStamp (3Byte)] [Header2 (1Byte)] [Data2 (3Byte)] [TimeStamp (3Byte)]
Ein komplettes Paket sind also 14 Byte. Der Empfang funktioniert auch ganz gut, zumindest wenn man die Auslese auf ein paar Minuten beschrenkt....
Selbst arbeite ich mit der javax.comm Bib. dort findet sich der Listener SerialPortEvent mit dem ich auch arbeite:
Code:
.....
public void serialEvent(SerialPortEvent event ) {
if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE){
byte[] readBuffer = new byte[theDataBase.getByteLength()];// Hier: theDataBase.getByteLength() =14
String IncommingBytes= null;
int numBytes=0;
try {
numBytes = theInputStream.read(readBuffer);
if(numBytes == theDataBase.getByteLength()){
IncommingBytes = bytesToHex(readBuffer,numBytes);
}else{
IncommingBytes = "Error";
}
thePrintWriter.println(IncommingBytes+" ");
thePrintWriter.flush();
}
catch (IOException e) {System.out.println("Fehler: "+e);}
}
}
....
Anfangs ist noch alles ok:
aae58ef000001055d9bab4000010
aa7270f00000115565647c000011
aaff52f000001255f162e9000012
aa8c34f0000013557cc9ba000013
aa1916f0000014550875a6000014
aaa5f8f000001555934ca4000015
aa32daf0000016551ce9e9000016
aabfbcf000001755a797a8000017
aa4c9ef0000018553179eb000018
aad980f000001955bddfea000019
aa6662f000001a554982ee00001a
aaf344f000001b55d4a96800001b
aa8026f000001c55603ec800001c
aa0d08f000001d55ecaadb00001d
aa99eaf000001e55768ef900001e
aa26ccf000001f55ff984a00001f
aab3aef0000020558c7ada000020
aa4090f00000215518e1eb000021
aacd72f000002255a3154f000022
Später:
1855cef0e5042018aa00064b0420
195552f04d042019aa8cea4b043e
aacb60fc04213f55bf214904213f
aa5842fc042140553f76be042140
aae524fc04214155aa338e4b0420
1d55532aae04201daac0724b0420
1e55d8b56804201eaa4d524b0420
1f555978f704201faada364b0420
2055dbb7d8042020aa67164b0420
21555d84b8042021aaf3fa4b0420
2255e176b9042022aa80da4b0420
23556281a6042023aa0dbe4b0420
2455e3facf042024aa9a9e4b0420
255564aed8042025aa27824b044a
aa65f8fc04214b55b86dda04214b
aaf2dafc04214c553f29f704214c
aa7fbcfc04214d55c0814404214d
aa556866b5042029aa5b0a4b0420
2a55eba5a904202aaae7ea4b0420
Kurz: HILFE!!!!!!!!!!!!!!!!! :?: