Problemme mit serielle Schnittstelle

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo Freunde, Ich habe ein Problem und bin für jeden Tipp dankbar.
Ich versuche eine Textdatei über serielle Schnittstelle zu senden und zu empfangen. Ich habe im Netz die untere Code gefunden, bekomme aber die Fehlermeldung
Fehler :javax.comm.NoSuchPortException.
Ich habe über Schnittstellen keine Ahnung, aber dummerweise brauche ich sie.

Danke im Voraus

Code:
import java.io.*;
import javax.comm.*;
import java.awt.*;
import java.awt.event.*;

public class comframe extends Frame{
  static CommPortIdentifier portID;
  InputStream ins;
  OutputStream out;
  static SerialPort serss;
  TextArea ausgabe;
  TextField tfe;
  Button bt;

  public static void main(String[] args){
    try{portID = CommPortIdentifier.getPortIdentifier("COM2");
        serss = (SerialPort) portID.open("mein_programm",2000);
        comframe f = new comframe();
        f.setSize(330,250);
        f.show();
    }
    catch(Exception exc){System.out.println("Fehler :"+exc);}
  }

  public comframe() {
    this.addWindowListener(new WindowAdapter(){
      public void windowClosing(WindowEvent e){
        dispose();
        System.exit(0);
      }
    });
    setLayout(new FlowLayout());
    add(tfe=new TextField(40));
    tfe.addActionListener(new sendeListener());
    add(bt=new Button("Senden"));
    bt.addActionListener(new sendeListener());
    add(ausgabe=new TextArea("Port COM2 geöffnet\n",7,40));
    try {ins = serss.getInputStream();
         out = serss.getOutputStream();
         serss.addEventListener(new commListener());
    }
   catch (Exception e) { System.out.println("Fehler: "+e);}
    serss.notifyOnDataAvailable(true);
    try {serss.setSerialPortParams(2400,
                                   SerialPort.DATABITS_8,
                                   SerialPort.STOPBITS_1 ,
                                   SerialPort.PARITY_NONE);}
    catch (UnsupportedCommOperationException e) {}
  }

  public class sendeListener implements ActionListener{
    public void actionPerformed(ActionEvent e){
      PrintWriter aus = new PrintWriter(out);
      aus.println(tfe.getText());
      aus.flush();
      aus.close();
    }
  }

  public class commListener implements SerialPortEventListener{
    public void serialEvent(SerialPortEvent event) {
      if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE){
        byte[] readBuffer = new byte[20];
        try {
          while (ins.available() > 0) {int numBytes = ins.read(readBuffer);}
          String nachricht = new String(readBuffer);
          ausgabe.append(nachricht);
        }
        catch (IOException e) {System.out.println("Fehler: "+e);}
      }
    }
  }

}
 

PollerJava

Top Contributor
COM2 gibts bei dir wahrscheinlich nicht, schreib COM1 hin wenn Du nicht gerade einen Labtop ohne serielle Schnittstelle hast,
bzw schau wie deine serielle Schnittstelle heißt -> Windowstaste + Pause -> Hardware -> Gerätemanager -> Anschlüsse
->so heißt/heißen dann die serielle(n) Schnittstelle(n).
 
T

tuxedo

Gast
Du kannst dir die verfügbaren Com-Ports mit der Library auch ausgeben lassen. Die dafür notwendigen Zeilen findest du irgendwo im Netz, oder du gehst die API-Dok durch.

- Alex
 

rama

Mitglied
oder du verwendest das:

Code:
 /*
Die vorhandenen Ports (serielle und parallele) auflisten
30.11.01 / Sö
*/

import javax.comm.*; // Package für Kommunikation mit Ports
import java.util.*; // Enumeration ist hier


public class RS232
{
  static CommPortIdentifier portId; // identifiziert einen Port
  static Enumeration portList; // enthält die Liste aller Ports

  public static void main(String[] args)
  {
    System.out.println("Liste der vorhandenen Ports:");
    // Ports bestimmen:
    portList = CommPortIdentifier.getPortIdentifiers();
    // und ihre Namen ausgeben:
    while (portList.hasMoreElements())
    {
      CommPortIdentifier portId = (CommPortIdentifier)
        portList.nextElement();
      System.out.println(portId.getName());
    }
  }
}
 
G

Guest

Gast
hallo zusammen,

ich habe diesen code auch für ein projekt genommen und er funktioniert auch gut.

Code:
import java.io.*;
import gnu.io.*;           //RxTx statt javax.comm
import java.awt.*;
import java.awt.event.*;

public class comframe extends Frame{
  static CommPortIdentifier portID;
  InputStream ins;
  OutputStream out;
  static SerialPort serss;
  TextArea ausgabe;
  TextField tfe;
  Button bt;

  public static void main(String[] args){
    try{portID = CommPortIdentifier.getPortIdentifier("COM2");
        serss = (SerialPort) portID.open("mein_programm",2000);
        comframe f = new comframe();
        f.setSize(330,250);
        f.show();
    }
    catch(Exception exc){System.out.println("Fehler :"+exc);}
  }

  public comframe() {
    this.addWindowListener(new WindowAdapter(){
      public void windowClosing(WindowEvent e){
        dispose();
        System.exit(0);
      }
    });
    setLayout(new FlowLayout());
    add(tfe=new TextField(40));
    tfe.addActionListener(new sendeListener());
    add(bt=new Button("Senden"));
    bt.addActionListener(new sendeListener());
    add(ausgabe=new TextArea("Port COM2 geöffnet\n",7,40));
    try {ins = serss.getInputStream();
         out = serss.getOutputStream();
         serss.addEventListener(new commListener());
    }
   catch (Exception e) { System.out.println("Fehler: "+e);}
    serss.notifyOnDataAvailable(true);
    try {serss.setSerialPortParams(2400,
                                   SerialPort.DATABITS_8,
                                   SerialPort.STOPBITS_1 ,
                                   SerialPort.PARITY_NONE);}
    catch (UnsupportedCommOperationException e) {}
  }

  public class sendeListener implements ActionListener{
    public void actionPerformed(ActionEvent e){
      PrintWriter aus = new PrintWriter(out);
      aus.println(tfe.getText());
      aus.flush();
      aus.close();
    }
  }

  public class commListener implements SerialPortEventListener{
    public void serialEvent(SerialPortEvent event) {
      if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE){
        byte[] readBuffer = new byte[20];
        try {
          while (ins.available() > 0) {int numBytes = ins.read(readBuffer);}
          String nachricht = new String(readBuffer);
          ausgabe.append(nachricht);
        }
        catch (IOException e) {System.out.println("Fehler: "+e);}
      }
    }
  }

}

ein µC hängt über USB am rechner und ich greife über einen COM port (FTDI treiber) darauf zu. bei der kommuniktation z.b. über hyperterminal liefert der µC dann bei dem befehl "#0M" den aktuellen spannungswert, gedrückte tasten bitcodiert und eine prüfsumme zurück (z.b. "*0M 9953,0@061").

nun das problem: das programm liefert mir "#0MÁj�åʪšb‚‚²Šjþ"

ich denke die ursache liegt in folgendem abschnitt, aber ich sehe den fehler einfach nicht.

Code:
public class commListener implements SerialPortEventListener{
    public void serialEvent(SerialPortEvent event) {
      if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE){
        byte[] readBuffer = new byte[20];
        try {
          while (ins.available() > 0) {int numBytes = ins.read(readBuffer);}
          String nachricht = new String(readBuffer);
          ausgabe.append(nachricht);
        }
        catch (IOException e) {System.out.println("Fehler: "+e);}
      }
    }
  }

gruß
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
stroggi Serielle Schnittstelle (jssc) - Flush benötigt? Allgemeine Java-Themen 2
ms_cikar RS232 Serielle Baudrate automatisch einstellen Allgemeine Java-Themen 1
T Input und Outputstream , serielle Schnittstelle Allgemeine Java-Themen 1
S Threads Serielle Schnittstelle mit Listener / Aufrufendes GUI Allgemeine Java-Themen 4
L Java und Serielle COM Ports Allgemeine Java-Themen 4
M Serielle Schnittstelle ansteuern - mit Processing Bibliothek Allgemeine Java-Themen 4
R Virtuelle Serielle Schnittstellen mit RXTX Allgemeine Java-Themen 2
F Serielle Kommunikation Allgemeine Java-Themen 20
J javax.comm findet serielle ports nicht Allgemeine Java-Themen 2
I Serielle Schnittstelle Allgemeine Java-Themen 5
L Serielle Kommunikation Allgemeine Java-Themen 6
N Serielle Schnittstelle / COM-Port auslesen und die empfangenen Daten verarbeiten Allgemeine Java-Themen 1
O Zugriff auf Serielle Schnittstelle - Keine Ports gefunden. Allgemeine Java-Themen 8
G Serielle Verbindung zu einem Handy Allgemeine Java-Themen 3
G serielle Schnittstelle einlesen Allgemeine Java-Themen 13
P serielle Schnitttstelle Allgemeine Java-Themen 14
D Datenübertragung über serielle Schnittstelle Allgemeine Java-Themen 4
MQue serielle Schnittstelle Allgemeine Java-Themen 2
E serielle Schnittstelle Allgemeine Java-Themen 6
N Serielle Schnittstelle ansprechen Allgemeine Java-Themen 9
G javax.comm bzw serielle Schhnittstelle? Allgemeine Java-Themen 2
J serielle Schnittstelle unter Linux Allgemeine Java-Themen 3
W Zugriff auf lokale serielle Schnittstelle via Applet Allgemeine Java-Themen 3
A Serielle Schnittstelle | Barcodescan | ohne Tastatur Allgemeine Java-Themen 11
G Zugriff auf serielle Schnittstelle mit Java 1.5.0 Allgemeine Java-Themen 11
J serielle schnittstelle unter linux Allgemeine Java-Themen 3
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
Tarrew OpenAPI Schnittstelle - Mehrere Kunden mit unterschiedlichen Zugriffsrechten Allgemeine Java-Themen 2
B Schnittstelle zwischen MySQL und Apache Allgemeine Java-Themen 8
Meeresgott Best Practice Mini REST-Schnittstelle Allgemeine Java-Themen 4
P Schnittstelle java Programm zu Webserver / Browser Allgemeine Java-Themen 2
M Schnittstelle Datanorm Allgemeine Java-Themen 2
H Daten via COM Schnittstelle erhalten Allgemeine Java-Themen 2
I Java - perfekte Schnittstelle für Hacker? Allgemeine Java-Themen 8
M Java-Pawn Schnittstelle ? Allgemeine Java-Themen 0
L COM Schnittstelle in Java programmieren Allgemeine Java-Themen 4
T Schnittstelle zu Bash?! Allgemeine Java-Themen 2
D Aufgabe: Schnittstelle und Proxy implementieren Allgemeine Java-Themen 2
H Interface Generische Schnittstelle (rekusiv) Allgemeine Java-Themen 2
B Schnittstelle von Facebook zu Java(Eclipse) für meine Internetseite Allgemeine Java-Themen 20
U Realisierung einer "Plugin-Schnittstelle": Allgemeine Java-Themen 12
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
M Schnittstelle für durchgereichte Interaktionen in Komponentenhierarchie? Allgemeine Java-Themen 3
P Auslesen serieller Schnittstelle - umwandeln von byteArray Allgemeine Java-Themen 3
S Problem mit serieller Schnittstelle Allgemeine Java-Themen 10
M Zugriff auf Parallel-Schnittstelle Allgemeine Java-Themen 2
P Schnittstelle über Webservice SOAP Allgemeine Java-Themen 11
MQue Schnittstelle programmieren Allgemeine Java-Themen 2
H lpt1 schnittstelle Allgemeine Java-Themen 6
M Schnittstelle java.util.Set Allgemeine Java-Themen 9
G Kommunikation mit der seriellen Schnittstelle Allgemeine Java-Themen 6
M Paralle Schnittstelle ansprechen Allgemeine Java-Themen 2
P TCPIP Schnittstelle Allgemeine Java-Themen 2
D Daten aus einer Seriellen Schnittstelle empfangen Allgemeine Java-Themen 22
D HTML Schnittstelle Allgemeine Java-Themen 4
T parallele Schnittstelle auslesen Allgemeine Java-Themen 5
S Problem mit Ansteuerung von serieller Schnittstelle Allgemeine Java-Themen 7
Q Schnittstelle/Abstrakte Klasse schreibt Annotation vor? Allgemeine Java-Themen 4
T Java Schnittstelle Active Directory Allgemeine Java-Themen 5
Q Typecast zwischen Klassen mit implementierter Schnittstelle Allgemeine Java-Themen 4
M RS232 Schnittstelle ansteuern (Floppy durch Laptop ersetzen) Allgemeine Java-Themen 2
Z java->schnittstelle->excel Allgemeine Java-Themen 2
V gezielte Datenbankeinträge über JDBC schnittstelle Allgemeine Java-Themen 10
H javax.comm und Parallele Schnittstelle (PIN für PIN) Allgemeine Java-Themen 7
X Java Schnittstelle zu AIML Allgemeine Java-Themen 2
S String an COM-Schnittstelle senden Allgemeine Java-Themen 6
D Schnittstelle zwischen zwei Klassen? Allgemeine Java-Themen 2
J PS/2-Schnittstelle ansprechen Allgemeine Java-Themen 7
Y Zugriff auf Com-Schnittstelle Allgemeine Java-Themen 5
S Abhören der com-Schnittstelle Allgemeine Java-Themen 3
H Zugriff auf parallele Schnittstelle Allgemeine Java-Themen 4
C Implementieren einer Schnittstelle (Interface), Ausnahmen Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben