Übergabe Stringzeilen von serieller Schnittstelle in andere Klasse

welle87

Mitglied
Hallo,

brauche dringend Unterstützung, meine Lektüre hilft mir nicht weiter. Wahrscheinlich kapier ich
es ehrlichgesagt auch nicht. :rtfm:
Ich habe eine Klasse zum zeilenweisen Text auslesen von einer seriellen Schnittstelle.
Nun ich möchte die Variable "merker" (Zeile74) in meine Startklasse (bzw. Mainklasse) übergeben.
Kann ich nicht dafür einfach ein Setter schreiben um den String dann
mit einem Getter in der Startklasse zu holen?

Java:
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.TooManyListenersException;
 
public class GPS implements SerialPortEventListener{
 
    private CommPortIdentifier serialPortId;
    private Enumeration enumComm;
    private SerialPort serialPort;
 
        private final int baudrate = 4800;
        private final String portName = "COM12";
        private BufferedReader br;
        String merker="";

 
    public GPS(){
 
            if(openSerialPort()){
                try{
                    serialPort.addEventListener(this);
                    serialPort.notifyOnDataAvailable(true);
                }catch(TooManyListenersException ex){}
            }
    }
 
        public static void main(String[] args){
            new GPS();
        }
 
    public boolean openSerialPort(){
            boolean foundPort = false;
            enumComm = CommPortIdentifier.getPortIdentifiers();
            while(enumComm.hasMoreElements()) {
                    serialPortId = (CommPortIdentifier) enumComm.nextElement();
                    if(portName.contentEquals(serialPortId.getName())) {
                            foundPort = true;
                            break;
                    }
            }
            if(!foundPort)
                    return false;
 
            try{
 
                serialPort = (SerialPort) serialPortId.open(this.getClass().getName(),2000);
                serialPort.setSerialPortParams(baudrate, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
                br = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
            }catch(Exception e){
                return false;
            }
            return true;
    }
   
        public void serialEvent(SerialPortEvent event){
            switch (event.getEventType()){
            case SerialPortEvent.BI:
            case SerialPortEvent.OE:
            case SerialPortEvent.FE:
            case SerialPortEvent.PE:
            case SerialPortEvent.CD:
            case SerialPortEvent.CTS:
            case SerialPortEvent.DSR:
            case SerialPortEvent.RI:
            case SerialPortEvent.OUTPUT_BUFFER_EMPTY: break;
            case SerialPortEvent.DATA_AVAILABLE:
            	try{
                    merker = br.readLine();
                    }	
                    
                }catch(IOException ex){}
                break;
            }
        }
        
}
 
S

SlaterB

Gast
du kannst fast alles, mehr ist so allgemein gefragt gar nicht zu antworten,

besteht denn irgendein Problem mit getter oder setter?
 

Ralph-Uwe

Bekanntes Mitglied
Hallo,

erstmal vorweg:
Du versuchst offensichtlich Daten aus einer GPS-Empfänger auszulesen, damit habe ich mich noch nicht beschäftigt, daher kann ich dazu wenig sagen.
Aber ich denke, dass bei der Empfänger, eine Schnittstellenbeschreibung beigelegen hat.
Aus den sollte hervorgehen, auf welche Art die Daten über die Schnittstelle geschickt werden.

Bei dem Drucker den ich angebunden habe, erfolgt die Übertagung immer als Einzelinformation
oder als Block und das ganze Byteweise. (Du versuchst oben eine komplette Zeile zulesen, ich
glaube das geht nicht).
Eine Einzelinformation kann z.B. sein : ACK oder NAK (ACKnowledge oder NotAcKnowledge).
Blöcke werden mit SOH (Start of Header) eingeleitet, dann folgen die Nutzdaten (meist ein String)
und enden mit EOT (End of Transmission)

Ich habe den Empfang in eine eigene Methode ausgelagert:
Java:
case SerialPortEvent.DATA_AVAILABLE: empfang();

Java:
private final static char SOH = 1;
private final static char EOT = 4;
private final static char ACK = 6;
private final static char NAK = 21;
	
...

	private static void empfang(){
		try {
			 nak = false;
			 byte b = (byte) in.read();
			 if (b == ACK) {
				 daten = "ACK";
			 }
			 else if (b == NAK ) {
				 daten = "NAK";
				 nak = true;
			 }
			 else {
				 if ((b != SOH) && (b != EOT)){ 
					daten += (char)b;
				 }
			 }
			 if((b==ACK)||(b==NAK)||b==EOT) 
			 {
				 // empfangende Daten Auswerten
				 
				 daten = "";
			 }
		} catch (IOException e) {
			e.printStackTrace();
		}
	}


In den Beispiel werden einzelne Bytes eingelesen und geprüft, ob sich um ein
Steuerzeichen handelt.
Handelt es sich bei den Daten um kein Steuerzeichen, werden aus den gelesenen Bytes ein String
zusammengesetzt, der nach dem nächsten Steuerzeichen ausgewertet werden kann.


Ich hoffe ich konnte helfen.

Gruß
 

welle87

Mitglied
Ja genau versuche ein GPS-Empfänger auszulesen und möchte immer den letzten Wert, d.h. den aktuellsten Wert mit einem anderen Wert vergleichen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
S Übergabe von Arrays an Methoden Java Basics - Anfänger-Themen 20
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
D Methode mit Übergabe double und Rückgabe String Java Basics - Anfänger-Themen 2
L Methoden Übergabe von Parameter Java Basics - Anfänger-Themen 3
K Java Problem mit Übergabe von argumenten Java Basics - Anfänger-Themen 3
J Übergabe von Parametern an andere Methoden Java Basics - Anfänger-Themen 5
D Probleme mit der Übergabe einer BorderPane Java Basics - Anfänger-Themen 2
R Methoden Übergabe von einer Methodenvariable Java Basics - Anfänger-Themen 3
M Übergabe von Werten Java Basics - Anfänger-Themen 10
arjoopy Kapselung Übergabe von Objekten aus ArrayList Java Basics - Anfänger-Themen 4
C Erste Schritte Übergabe von Klassen Java Basics - Anfänger-Themen 2
C Methoden Objekte und Methode und Übergabe Java Basics - Anfänger-Themen 4
O Übergabe in eine andere Klasse Java Basics - Anfänger-Themen 3
M Übergabe / Rückgabe Java Basics - Anfänger-Themen 6
S Kapselung Objekt bei Übergabe an Konstruktor nicht initalisiert Java Basics - Anfänger-Themen 3
T Problem bei Übergabe von Variablen Java Basics - Anfänger-Themen 1
fLooojava Probleme bei der Übergabe einer Variable Java Basics - Anfänger-Themen 14
R Vererbung Übergabe von Variablen der Superklasse an Subklasse mit "extends" Java Basics - Anfänger-Themen 5
S OOP Übergabe eines Objektes? Java Basics - Anfänger-Themen 1
fLooojava OOP Übergabe/Output in Textfield Java Basics - Anfänger-Themen 4
U Übergabe von Objekten Java Basics - Anfänger-Themen 0
J ArrayList toString() Übergabe Fehler Java Basics - Anfänger-Themen 2
S Übergabe Java Basics - Anfänger-Themen 14
S Klassen Array: Übergabe von Klasse zur Main Java Basics - Anfänger-Themen 8
A NullPointerException bei Übergabe eines Array Java Basics - Anfänger-Themen 8
feardorcha Methodenaufruf Übergabe- und Rückgabewert Java Basics - Anfänger-Themen 5
D Klassen Problem - Übergabe an Konstruktor von Superklasse Java Basics - Anfänger-Themen 2
D Objekt Übergabe Java Basics - Anfänger-Themen 12
M Array Übergabe Java Basics - Anfänger-Themen 17
B Übergabe Dateiname (String) an andere Klasse Java Basics - Anfänger-Themen 4
P Methoden Übergabe von Werten Java Basics - Anfänger-Themen 7
F Variablen Übergabe von eingelesenen Variablen in neue Klasse Java Basics - Anfänger-Themen 15
M Fragen zu Methoden (void/return), Übergabe von Parametern Java Basics - Anfänger-Themen 3
A Übergabe von Variablen zu Paintmethode Java Basics - Anfänger-Themen 2
N Array Übergabe Java Basics - Anfänger-Themen 9
L Klassen Parameter Übergabe Java Basics - Anfänger-Themen 12
A OOP Übergabe eines Wertes an den enum Konstruktor Java Basics - Anfänger-Themen 12
O Übergabe von Variablen Java Basics - Anfänger-Themen 9
Darth Simple Übergabe eines Strings an eine Methode Java Basics - Anfänger-Themen 3
A Frage zur Übergabe von Strings Java Basics - Anfänger-Themen 9
N Übergabe problem Java Basics - Anfänger-Themen 6
M Übergabe von VM Argumenten Java Basics - Anfänger-Themen 4
J Übergabe einer ArrayList an mehrere Threads Java Basics - Anfänger-Themen 3
E Übergabe von werten aus einem JDialog Java Basics - Anfänger-Themen 4
J Übergabe eines Arrays als Parameter Java Basics - Anfänger-Themen 2
S Übergabe von Frame-Objekt - kritisch? Java Basics - Anfänger-Themen 7
L JTabbedPane, richtige Übergabe von Tabs Java Basics - Anfänger-Themen 18
Z BigInteger Methoden und deren Übergabe Java Basics - Anfänger-Themen 3
K Übergabe einer im EventListener definierte variablen Java Basics - Anfänger-Themen 2
M Übergabe von Variablen in eine Klasse Java Basics - Anfänger-Themen 13
G Wieso ist eine String-Übergabe keine by-reference-Zuweisung? Java Basics - Anfänger-Themen 7
M Problem bei der Übergabe von Werten Java Basics - Anfänger-Themen 7
G Übergabe von Parametern an JSP Java Basics - Anfänger-Themen 3
S Veränderung von Protected Daten durch Übergabe? Java Basics - Anfänger-Themen 3
K Übergabe der Variable für Farbe Java Basics - Anfänger-Themen 6
G List<.> nach Übergabe vergleichen? Java Basics - Anfänger-Themen 3
G Übergabe Variablen von Servlet zu JSP? Java Basics - Anfänger-Themen 4
R Beiß mir die Zähne aus an der Request-Parameter-Übergabe! Java Basics - Anfänger-Themen 10
lin Übergabe an JPanel-Klasse Java Basics - Anfänger-Themen 3
S NullPointerException bei Array-Übergabe Java Basics - Anfänger-Themen 3
D Übergabe von Variablen Java Basics - Anfänger-Themen 11
W Variabeln Übergabe Java Basics - Anfänger-Themen 14
F Großes Problem: Vector-Übergabe Java Basics - Anfänger-Themen 7
F Übergabe Vaterframe mit this und Fehlermeldung. Java Basics - Anfänger-Themen 2
D Fragen zu Methoden und Übergabe von Werten Java Basics - Anfänger-Themen 4
G Übergabe von Variablenwerten zwischen Methoden Java Basics - Anfänger-Themen 4
D Problem bei Übergabe von Werten an eine Methode Java Basics - Anfänger-Themen 2
H Übergabe eines Wertes an eine Bean --> Bean leer Java Basics - Anfänger-Themen 6
T Array-Übergabe Java Basics - Anfänger-Themen 7
M Windows Pfad-Übergabe.. Java Basics - Anfänger-Themen 6
S String mit Konstruktor (per Übergabe) initialisieren Java Basics - Anfänger-Themen 10
M Problem mit Serieller Schnitstelle mit JavaComm20 Java Basics - Anfänger-Themen 6
C Serieller Port Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben