[Java] RXTX Problem

OP #2225847
Lesenswert?

Hallo liebe Community!

Ich schreibe zur Zeit an einem Programm, dass die Messdaten eines 
Messverstärkers aufbereitet. Mit dem PC verbunden wird das ganze per 
RS232 und USB-RS232-Konverter.

Als Schnittstellenbibliothek nutze ich RXTX (2.1.7), Betriebssystem ist 
Windows XP. Entwicklungsumgebung NetBeans 7.

Nun u meinem Problem. Der Messverstärker wird mit ASCII Codes 
angesprochen. Zum Testen nehme ich immer "ID", damit erhalte ich die 
Gerätekennung des Messverstärkers. Allerdings bekomme ich immer nur nach 
ca. 5 bis 10 Anfragen eine Antwort vom Messverstärker. Auch zu sehen am 
USB-RS232-Konverter (eine Leuchte für Input, eine für Output).

Testweise hab ich auch mal das Programm "Advanced Serial Port Monitor" 
probiert. Dort klappt die Sache in ca. 95% der Anfragen, 
zufriedenstellend erstmal. Nur eben bei meinen Programmen nicht. Ich 
versteh nicht wo das Problem liegen könnte. Die 
Schnittstelleneinstellungen passen so wie sie standardmäßig auch im 
Messverstärker eingestellt sind (ebenso im Gerätemanager).

Hierfür habe ich 2 verschiedene Quelltexte verwendet:
1.: http://rxtx.qbang.org/wiki/index.php...he_serial_port
(nur zum Testen)
Anmerkung zur Quelltextänderung:

public void run ()
{
 try
 {
   int c = 1000;
   String s = "ID";
   byte[] byteArray new byte[128];
   byteArray = s.getBytes();
   while ( ( c > -1 )
   {
      this.out.write(byteArray);
      this.out.flush(); auch keine Verbesserung
      c--;
      //try { Datenanfrage alle 20ms, keine Änderung des Ergebnis
      // Thread.sleep(20);
      //} catch (InterruptedException ex) {
      // Logger.getLogger(Rs232.class.getName()).log(Level.SEVERE, null, 
ex);
      //}
   }
 }
catch ( IOException e )
{
e.printStackTrace();
}
}


2.: http://www.mikrocontroller.net/artic...lle_unter_Java
Dieser Quelltext (Swing Version) wird abgewandelt in einer GUI 
verwendet.

Also egal, ob ich eventbasiert (nur 1 Hauptthread, auch wenn man das 
nicht macht ) oder threadbasiert arbeite, beide Quelltexte liefern das 
gleiche Ergebnis.

Der Messverstärker ist übrigens nur mit den Kabeln für die Daten (Rx, 
Tx) und der Masse verbunden.

Wo liegt das Problem? Es scheint ja eine reine Softwaresache zu sein?

Vielen Dank schon mal im Voraus


Edit1:
Dass die Pause zu kurz ist kann leider ausgeschlossen werden, da ich 
bereits ständiges senden, sowie Pausenabstände von 10, 20, 30, 40, 50, 
60,70, 80, 90, 100, 200, 300, 400, 500 und 1000ms getestet habe bei 
jeweils 100 Anfragen. Hab dann nachgezählt wieviele Antworten ich 
erhalten habe und welche davon verwertbar waren. Im Mittel schwankt hier 
Erfolgsrate eben zwischen 5 und 15 Antworten auf 100 Anfragen.

Edit2:
Ich hab auch schon direkt dezimal nach ASCII Tabelle den Code gesendet. 
sprich byte[] b = {73, 68};
Da hat sich leider auch nix geändert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren