Hier gibt es einen Beitrag über die Benutzung von JSSC.
Mittlerweile habe ich den Code für das Senden eines Wertes und den
Empfang der Antwort die aus mehreren Werten bestehen kann,
umgeschrieben.
Der Ablauf ist dabei folgender:
1. seriellen Buffer Ein- und Ausgang löschen
2. Wert senden
3. auf Antwort warten
Das Programm funktioniert dabei manchmal seht gut und es werden 200
Ping-Pong Aktionen problemlos ausgeführt.
Wenn es aber einmal einen Timeoutfehler gibt, sind alle folgenden
Übertragungen auch mit einem Timeout behaftet.
Ich habe alles Mögliche probiert, aber eine zuverlässige Kommunikation
scheint nicht möglich zu sein.
Hat irgend jemand noch eine Idee?
1 | public int[] ping(int valueToBeSend, int dataLength) throws SerialPortException, SerialPortTimeoutException
|
2 | {
|
3 | int timerout_ms = 500;
|
4 | int[] data=new int[dataLength];
|
5 |
|
6 | try
|
7 | {
|
8 | serialPort.purgePort(SerialPort.PURGE_RXCLEAR);
|
9 | serialPort.writeInt(valueToBeSend);
|
10 |
|
11 | } catch (SerialPortException e1)
|
12 | {
|
13 | // TODO Auto-generated catch block
|
14 | e1.printStackTrace();
|
15 | }
|
16 | data= serialPort.readIntArray(dataLength, timerout_ms);
|
17 |
|
18 | return data;
|
19 | }
|