Daten über serielle Schnittstelle empfangen

J

ja.va

Mitglied
Hallo,

ich lerne mich gerade in Java ein und versuche ein Projekt. Dabei versuche ich eine serielle Schnittstelle aufzubauen und bin auf RXTX gekommen was ich installiert habe. Jetzt versuche ich eine Verbindung aufzubauen jedoch blicke ich nicht wirklich durch bei den Klassen. Ich habe CommPort, CommPortIdentifier und SerialPort gefunden aber weiß nicht wie ich weiter Programmieren soll, was genau benötigt wird bzw. wie es funktioniert. Habt ihr vielleicht noch Tipps zum unteren Code?

Danke für die Hilfe und jeden Tipp!



serielle Schnittstelle:
import java.io.*;
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;

/**

 */
public class UsbStick {
     
    public void dateiBeschreiben(){
        File dataList = new File ("/media/xxx/");         
        String[] name = dataList.list();

        for (int i=0; i< name.length; i++){
            System.out.println(name.length);
            System.out.println(name[i]);
        }
      
        File usbStickO = new File ("/media/xxx/" + name[0] + "/dateiO.csv");
        BufferedWriter text = null;
        try{       
            if(!usbStickO.exists()){
                usbStickO.createNewFile();
            }
            
            text = new BufferedWriter(new FileWriter(usbStickO));
            text.write("Hallo Welt");
            text.flush();
            text.close();
                    
            System.out.println("Datei wurde erstellt und beschrieben!");
                  
            
        }catch(IOException e){
            System.out.println("USBStick nicht gefunden!");
        }finally{
            if(text != null){
                text.close();
            }   
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args){
        // TODO code application logic here

        CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("/dev/ttyUSB1");
        System.out.println(portIdentifier.getName());
        
        UsbStick ausführen = new UsbStick();
        
        ausführen.dateiBeschreiben();
        
    }
    
}
 
VfL_Freak

VfL_Freak

Top Contributor
Moin,

ist ja toller Code ..... :rolleyes:

Und was ist damit?
Funktioniert irgendwas nicht? Hast Du Verständnisfragen ??
Wir helfen ja gerne, müssten aber schon wissen wobei!

Es wäre auch gut, wenn Du ihn mit Kommentaren versehen würdest, die die jeweilige Funktionsweise beschreiben!

Du hast eine Klasse 'usbstick', ebenso ein Objekt vom Typ 'usbstick', das aber 'ausführen' heißt (Tipp: keine deutschen Umlaute!!) und dann noch ein Fileobjekt 'usbstick' .... meinst Du, dass Du da irgendwann selbst noch durchblickst??

VG Klaus
 
J

ja.va

Mitglied
Danke für die Rückmeldung.

Ich würde gerne Daten die über die serielle Schnittstelle kommen speichern. Dabei werden die Daten in eine Datei auf einem USBStick gespeichert. Momentan bin ich soweit dass es eine Datei erstellen kann. Probleme habe ich mit dem Empfang der seriellen Daten. Mir ist noch sehr unklar wie diese Klassen funktionieren. Ich habe gesehen dass CommPortIdentifier immer verwendet wird, aber was genau es macht weiß ich nicht. Danach müssen noch die Baudrate usw. bekannt gegeben werden. Aber der optimale Ablauf das zu programmieren ist mir noch sehr unklar.
Hier ist der erste Teil den ich habe, man kann es bestimmt besser machen. Für Tipps bin ich dankbar.

LG

serielle Schnittstelle:
import java.io.*;
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;

/**

 */
public class UsbStickDateischreiben {
    
    public void dateiBeschreiben(){
        File dataList = new File ("/media/xxx/");     //Beim USB Anschluss wird es hier angezeigt      
        String[] name = dataList.list();                    //Es werden alle Dateien und Verzeichnisse im Ordner angezeigt

        for (int i=0; i< name.length; i++){               //Die Namen vom Verzeichnis welches Linux erstellt werden hier angezeigt
            System.out.println(name.length);
            System.out.println(name[i]);
        }
      
        File usbStickO = new File ("/media/xxx/" + name[0] + "/dateiO.csv");          //Öffnet bzw. erstellt eine CSV Datei im jeweiligen Ordner
        BufferedWriter text = null;
        try{       
            if(!usbStickO.exists()){
                usbStickO.createNewFile();
            }
            
            text = new BufferedWriter(new FileWriter(usbStickO));                            //Schreibt "Hallo Welt" in die Datei
            text.write("Hallo Welt");
            text.flush();
           
                    
            System.out.println("Datei wurde erstellt und beschrieben!");
                  
            
        }catch(IOException e){
            System.out.println("USBStick nicht gefunden!");
        }finally{
            if(text != null){                                                                                          //Schließt die Datei
                text.close();
            }   
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args){
        // TODO code application logic here

        CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("/dev/ttyUSB1");            //1.Schritt serielle Schnittstelle aber unklar
        System.out.println(portIdentifier.getName());
        
        UsbStick ausfuehren = new UsbStick();                                                                      //Erstellt die Datei am USB-Stick
        
        ausfuehren.dateiBeschreiben();
        
    }
    
}
 
O

osix

Bekanntes Mitglied
ich hab vor Jahren mal RXTX verwendet und dann tatsächlich auch den Zugriff per Java geschafft. Es war aber äuserstt mühselig damals. Weiß nicht ob RXTX verbessert wurde.

Ich erinnere mich auch noch irgendwie dran, daß es ein Problem von Windows gab, das Java überhaupt auf COM zugreifen konnte. Da war irgendwas, aber genau erinnere ich mich nicht mehr, sorry...
 
J

ja.va

Mitglied
Danke für die Rückmeldung. Die ersten Schritte damit die Kommunikation funktioniert habe ich bereits. Es sind aber noch sehr viele Schönheitsfehler. Einerseits muss ich noch try, catch hinzufügen und die Kommunikation gehört noch verbessert wenn Daten ankommen => nicht ständig abfragen. Für andere Tipps wie man den Code schöner und besser darstellen kann bin ich jederzeit dankbar.

LG

Java:
import java.io.*;
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;

/**
 *
 * @author
 */
public class UsbStick {
    
    
    
    
    public void dateiBeschreiben(String zeile){
        File dataList = new File ("/media/xxx/");         
        String[] name = dataList.list();

        for (int i=0; i< name.length; i++){
            System.out.println(name.length);
            System.out.println(name[i]);
        }
      
        dataList = new File ("/media/xxx/" + name[0] + "/dateiO.csv");
        BufferedWriter text = null;
        try{       
            if(!dataList.exists()){
                dataList.createNewFile();
            }
            
            text = new BufferedWriter(new FileWriter(dataList));
            text.write(zeile);
            text.newLine();
            text.flush();
  
                    
            System.out.println("Datei wurde erstellt und beschrieben!");
                  
            
        }catch(IOException e){
            System.out.println("USBStick nicht gefunden!");
        }finally{
            if(text != null){
                text.close();
            }   
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args){
        // TODO code application logic here
        UsbStick ausfuehren = new UsbStick();
 
        CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("/dev/ttyUSB0");
        //Open the port and give the port name and a timeout
    
        CommPort commPort = portIdentifier.open("/dev/ttyUSB0", 2000);


        SerialPort serialPort = (SerialPort) commPort;

        //Set the baud rate and other parameters of the serial port
        serialPort.setSerialPortParams(115200, 8, 1, 0);
    
        
        InputStream in = null;
        //char[] buffer = new char[1024]
        String zeile = null;
        while(true){
 
                in = serialPort.getInputStream();
                if (in != null){
                    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                    zeile = reader.readLine();
                    System.out.println(zeile);
                    ausfuehren.dateiBeschreiben(zeile);
                }
        }       
    } 
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
C Daten über URL an PHP verschicken Allgemeine Java-Themen 4
H OOP Daten über TCP Allgemeine Java-Themen 5
B Periodisches Abrufen von Daten über eine Funktionstaste Allgemeine Java-Themen 6
W Daten in Access einfügen über Java Allgemeine Java-Themen 21
L Pfad von Daten auf Server über FileChooseDialog Allgemeine Java-Themen 5
T Daten einer Chipkarte über einen Chipkartenleser auslesen Allgemeine Java-Themen 3
D Daten einlesen über System.in Allgemeine Java-Themen 5
NicoDeluxe Daten in RAM zwischenspeichern oder lieber aus DB holen? Allgemeine Java-Themen 24
J JSON Daten von einer Webseite erhalten Allgemeine Java-Themen 2
S Entities aus XML - Daten. Allgemeine Java-Themen 1
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
N Daten einer JCoTable in JTextArea anzeigen Allgemeine Java-Themen 7
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
C Daten für Klassifikationsverfahren gewinnen Allgemeine Java-Themen 6
J Daten von Quelltext Allgemeine Java-Themen 5
K OOP Daten addieren sich bei GUI-Eingabe Allgemeine Java-Themen 10
J Jasper Reports - Daten vom Hoster Allgemeine Java-Themen 2
kodela Daten während Laufzeit zugriffsbereit Allgemeine Java-Themen 15
J Millisekunde zwischen 2 Daten Allgemeine Java-Themen 6
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
R Android Daten online senden Allgemeine Java-Themen 0
P Datenbank-MiniGUI fügt keine Daten ein Allgemeine Java-Themen 4
K Gespeicherte Daten von einer LinkedList auf vier LinkedList verteilen Allgemeine Java-Themen 6
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
NicoDeluxe Desktop-Applikation schreiben, wie daten persistent? Allgemeine Java-Themen 9
S Erste Schritte Fehlender Gedanken-Ansatz bei Interpretation von Daten Allgemeine Java-Themen 1
J Auslesen Daten Java/HTML Allgemeine Java-Themen 15
K Große Mengen an Daten speichern Allgemeine Java-Themen 9
D Daten in MySQL-Datenbank schreiben Allgemeine Java-Themen 13
A Swing FileWriter schreibt keine Daten in Datei Allgemeine Java-Themen 13
M Daten aus anderen Programmen auslesen Allgemeine Java-Themen 2
D Best Practice Login-Daten: Wie am besten abrufen? Allgemeine Java-Themen 6
L Best Practice Log Dateien analysieren und eventuell passende Daten am Chart darstellen Allgemeine Java-Themen 1
J Serial Port Daten empfangen Allgemeine Java-Themen 5
H Daten via COM Schnittstelle erhalten Allgemeine Java-Themen 2
J Daten persistent speichern Allgemeine Java-Themen 14
S Allgemeine parallelisierte Loesung um Daten im Hintergrund zu laden..? Allgemeine Java-Themen 6
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
G Daten aus Website auslesen Allgemeine Java-Themen 7
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
O Serial Port Daten als Tastaturanschlag senden Allgemeine Java-Themen 0
N Zeitabstand zwischen 2 Daten(Mehrzahl von Datum) Allgemeine Java-Themen 3
T Input/Output Daten in eine Datei schreiben Allgemeine Java-Themen 4
Z daten bindung Allgemeine Java-Themen 1
A Datentypen Gregorian Calendar - 2 Daten sind gleich?? Allgemeine Java-Themen 3
L Vergleich-Xml-Daten Allgemeine Java-Themen 3
vandread Daten verschlüsseln mit Java oder Datenbank Allgemeine Java-Themen 15
A Daten in Formularen/Vorlagen erstellen und ausdrucken Allgemeine Java-Themen 3
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
Todesbote Excel Blattschutz aufheben und Daten einfügen Allgemeine Java-Themen 3
T Mit Apache Poi Daten aus einer Excel Tabelle kopieren und in Word einfügen Allgemeine Java-Themen 1
NicoDeluxe PC identifizieren / Daten auslesen Allgemeine Java-Themen 15
G Combobox füllen mit daten aus einer Tabelle Allgemeine Java-Themen 4
J Maven .war enthält veraltete Daten Allgemeine Java-Themen 3
N Daten aus Jar laden Allgemeine Java-Themen 10
P Datentypen String-Daten zu Byte-Zahlen konvertieren - Komme nicht weiter nach vielem versuchen :-/ Allgemeine Java-Themen 7
K Input/Output Daten speichern / laden Allgemeine Java-Themen 2
M Best Practice: Daten aufnehmen-speichern-bereitstellen Allgemeine Java-Themen 8
T Daten effizient verwalten Allgemeine Java-Themen 4
B JTable eigene Daten Add Methode Allgemeine Java-Themen 2
S OOP Apache Commons Math - Verwendung von Genetics - Wie werden Daten in Chromosomen gespeichert? Allgemeine Java-Themen 4
R Daten aus DB auslesen in ein formular (JSP) Allgemeine Java-Themen 13
S Library fuer Internet-Text-Daten-Quellen..? Allgemeine Java-Themen 8
H Input/Output Binäre Daten konvertieren, Output hat Zeilenumbrüche?? Allgemeine Java-Themen 9
D Daten eines User auslesen. Allgemeine Java-Themen 5
B Input/Output Einbinden von Daten in Java Allgemeine Java-Themen 3
L Einbinden von Daten in ausführbare Jar Allgemeine Java-Themen 6
N Methoden Einzelne Daten aus "Person" auslesen Allgemeine Java-Themen 3
R SerialPort auslesen und Daten verarbeiten Allgemeine Java-Themen 23
ARadauer Wo liegen die Daten der Preferences Klasse Allgemeine Java-Themen 3
Madlip Erste Schritte Java speichert Daten im Programm?!? Allgemeine Java-Themen 9
S JDialog Daten ins JFrame übergeben Allgemeine Java-Themen 5
F Threads synchronisierung des Zugriffes auf daten Allgemeine Java-Themen 4
O Amazon S3 Anmelden / Daten downloaden Allgemeine Java-Themen 2
A Daten aufbereiten Allgemeine Java-Themen 11
P Daten kopieren mit nio - Zugriff verweigert Allgemeine Java-Themen 8
L Speichern von Daten in JKS Allgemeine Java-Themen 5
K JFreeCharts - Dummy für fehlende Daten Allgemeine Java-Themen 6
M Daten aus doc, pdf .... auslesen Allgemeine Java-Themen 12
Z Daten von einer Klasse in eine andere übertragen Allgemeine Java-Themen 8
A Login-Daten Formular automatisch ausfüllen Allgemeine Java-Themen 10
C Daten speichern und verwalten Allgemeine Java-Themen 3
Z Daten aus einer Internetseite auslesen? Allgemeine Java-Themen 2
E BlueJ Daten in Textdatei schreiben Allgemeine Java-Themen 21
T Gleichzeitige Zugriffe auf Daten auf dem Server Allgemeine Java-Themen 11
jmar83 META-INF-daten bei ungepackten library-projekten während der entwicklung mit einbeziehen...? Allgemeine Java-Themen 2
K Server Daten Visualisieren Allgemeine Java-Themen 3
F HashMap überschreibt Daten von anderen HashMap Allgemeine Java-Themen 5
A Java Projekt (Daten Eingeben, Speichern und in Listen Ausgeben) Allgemeine Java-Themen 6
L Sicherstellen das 2x die gleichen Daten unter bestimmten Keys enthalten sind. Allgemeine Java-Themen 6
A XML-Daten komprimieren Allgemeine Java-Themen 6
W Datei auslesen und die Daten weiter verarbeiten Allgemeine Java-Themen 4
D (Viele) Daten performant speichern und lesen Allgemeine Java-Themen 5
V Empfangene Daten sinnvoll Puffern Allgemeine Java-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben