den richtigen COM-Port finden

MarioW1986

Bekanntes Mitglied
Hallo zusammen,
ich habe jetzt schon fast eine halbe Stunde nach der Lösung gesucht aber ich finde dazu einfach gar nichts. Zumindest nicht so wie ich es brauche.

Ich möchte nicht den Namen des COM Ports vorgeben sondern es soll getestet werden, ob das Gerät was ich nutzen möchte mir eine Antwort schickt. Bedeutet kurz gesagt. Ich lese die vorhandenen COM-Ports aus und öffne den ersten, sende ein Kommando raus. Ist mein Gerät auf diesem Port wird es das Kommando erkennen und meiner Software eine Antwort schicken, diese erkennt meine Software und ich weiß aha das ist der COM-PORT mit dem ich arbeiten möchte. Sollte dies nicht der Fall sein wird der nächste COM-Port benutzt, gleiches Prozedere, so lange bis kein Port mehr da ist: pASST KEIN com-pORT; würde eine Fehlermeldung kommen. Wird jedoch oben genanntes Szenario erfüllt startet meine GUI.

Ich finde leite nur Quellcode den ich bereits selbst habe und zwar diesen bei dem ich den Portname selbst vorgebe. Leider ist der COM-Port auf jedem Computer eventuell ein anderer und kann somit nicht verallgemeinert werden. Ich habe bereits folgenden Code. Dieser funktioniert aber nur wenn ich den ersten Port überspringe(habe ich nur testweise gemacht um zu erfahren, ob der Code generell mit dem richtigen Port funktionieren würde). Würde ich das Überspringen rauslassen (so wie es eigentlich sein sollte) Werden zwar beide Ports geöffnet aber beide auch wieder geschlossen, da keine Antwort kommt.

Wäre super wenn mir jemand weiterhelfen könnte.

Java:
private static CommPortIdentifier serialPortId = null;
	private Enumeration<?> enumComm = null;
	private static SerialPort serialPort = null;
	private static OutputStream outputStream = null;
	private static InputStream inputStream = null;
	private static Boolean serialPortGeoeffnet = false;
	private static int baudrate = 115200;
	private static int dataBits = SerialPort.DATABITS_8;
	private static int stopBits = SerialPort.STOPBITS_1;
	private static int parity = SerialPort.PARITY_NONE;
...

boolean oeffneSerialPort() {
		int counter = 1;
		enumComm = CommPortIdentifier.getPortIdentifiers();
		while (enumComm.hasMoreElements()) {
			serialPortId = (CommPortIdentifier) enumComm.nextElement();
			if(serialPortId.getPortType() == 1) {
				if(counter != 0) {
					counter--;
				} else {
				try {
					serialPort = (SerialPort) serialPortId.open("Öffnen und Senden", 500);
					System.out.println(serialPort.getName().substring(4, serialPort.getName().length()));
					outputStream = serialPort.getOutputStream();
					inputStream = serialPort.getInputStream();
					serialPort.addEventListener(new serialPortEventListener());
					serialPort.notifyOnDataAvailable(true);
					serialPort.setSerialPortParams(baudrate, dataBits, stopBits, parity);
					serialPortGeoeffnet = true;
					sendeSerialPort("holeStatus");
					Thread.sleep(1000);

					if(foundPort == true) {
						System.out.println("SerialPort erfolgreich geöffnet");
						return true;
					} else {
						System.out.println("Serialport nicht gefunden");
//						schliesseSerialPort();
					}
				} catch (IOException | PortInUseException | UnsupportedCommOperationException | TooManyListenersException | InterruptedException e) {
//					Logging.logger.logp(Level.SEVERE, SerielleKommunikation.class.getSimpleName(), SerielleKommunikation.class.getMethods()[0].getName(), e.getMessage());
					e.getStackTrace();
				}
				}
			}
		}
		
		if (foundPort != true) {
			return false;
		} else {
			return true;
		}
	}
	
	public static void schliesseSerialPort() {
		if (serialPortGeoeffnet == true) {
			System.out.println("Schließe Serialport");
			outputStream = null;
			inputStream = null;
			serialPort = null;
			foundPort = false;
			serialPortGeoeffnet = false;
		} else {
			System.out.println("Serialport bereits geschlossen");
		}
	}
	
	public static void sendeSerialPort(String element) {
		new Senderoutine(element);
	}
 

DJLax5

Mitglied
Hallo MarioW1986,

ich habe mich auch schon mit COM-Ports in Java beschäftigt. Wer setzt denn bei dir foundPort auf true? Und welchen sinn hat der counter? So wie ich das sehe überspringst du den ersten Port. Ist das gewollt?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Richtigen COM-Port bestimmen Allgemeine Java-Themen 14
T datei auslesen ind der richtigen reihenfolge Allgemeine Java-Themen 2
L RMI Die richtigen Policy-Einstellungen oder einfach Signieren? Allgemeine Java-Themen 3
S java programm zu einem richtigen programm machen Allgemeine Java-Themen 37
B Dateien mit richtigen Programm öffnen Allgemeine Java-Themen 23
L Die Wahl des richtigen Streams? Allgemeine Java-Themen 3
Master3000 Java Port reset (Socket) Allgemeine Java-Themen 6
G Datei senden via Xmodem an Serial-Port Allgemeine Java-Themen 35
J Serial Port Daten empfangen Allgemeine Java-Themen 5
O Serial Port Daten als Tastaturanschlag senden Allgemeine Java-Themen 0
B Problem mit Virtuellem COM Port Allgemeine Java-Themen 1
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
A Serial Port abhören auf RX und TX Allgemeine Java-Themen 7
S RxTx - langsame Port suche Allgemeine Java-Themen 3
N Port festlegen für JXMapViewer Allgemeine Java-Themen 3
G java applet und com-port Allgemeine Java-Themen 7
J Port verwendung Allgemeine Java-Themen 13
J Receive eines Hex-Bytes über COM-Port Allgemeine Java-Themen 4
J String an Port senden Allgemeine Java-Themen 2
F Java <--> Serieller Port Allgemeine Java-Themen 3
N Serielle Schnittstelle / COM-Port auslesen und die empfangenen Daten verarbeiten Allgemeine Java-Themen 1
M Port-Tunneln Allgemeine Java-Themen 23
H Server Threaded machen. Port-Problem Frage Allgemeine Java-Themen 2
ARadauer Welches Programm hört auf Port? Allgemeine Java-Themen 3
B welchen port muss ich angeben? Allgemeine Java-Themen 11
P Linux port Allgemeine Java-Themen 4
K Java einen Port überwachen lassen Allgemeine Java-Themen 5
G Bibliothek für Port? Allgemeine Java-Themen 2
S Usb Port ansprechen Allgemeine Java-Themen 7
B EventListener zu einem COM Port hinzufügen Allgemeine Java-Themen 10
J COM-Port unter Windows nutzen Allgemeine Java-Themen 2
K serial-port Allgemeine Java-Themen 5
Z Parallel Port, setzen der einzelnen Pins Allgemeine Java-Themen 4
E Konflikte bei lokaler Adresse/Port Allgemeine Java-Themen 2
S Com-Port auslesen.Probleme Allgemeine Java-Themen 2
A Serial Port Probleme Allgemeine Java-Themen 4
E Seriellen Port unter Windows ansprechen Allgemeine Java-Themen 16
C Kommunikation mit USB Port Allgemeine Java-Themen 1
N lwjgl kann textureSampler nicht finden Allgemeine Java-Themen 4
OnDemand MemoryLeak nicht zu finden Allgemeine Java-Themen 26
P Java Quellen finden Allgemeine Java-Themen 3
W RegEx Stringliteral finden - Jflex Allgemeine Java-Themen 5
A Mithilfe von einer Nummer einen Namen finden n-Beziehung Allgemeine Java-Themen 8
T JSoup findet input Feld nicht?! Wie kann ich das Feld finden? Allgemeine Java-Themen 3
B Quellcode einer Java libary finden um zu copy & paste'n Allgemeine Java-Themen 5
S Einzigartigen String in Datenbank finden und löschen Allgemeine Java-Themen 23
TheJavaKid Mit Java die Festplatte mit dem meisten freien Speicher finden Allgemeine Java-Themen 7
J Fahrroute zwischen zwei Punkten finden Allgemeine Java-Themen 1
A Applet Applet debuggen und Logs finden Allgemeine Java-Themen 3
H ArrayList: Leere Elemente finden? Allgemeine Java-Themen 2
X Sich wiederholende substrings finden Allgemeine Java-Themen 6
KeVoZ_ Bestimmte Zeile aus Console finden & auslesen Allgemeine Java-Themen 2
N Knoten mit kleinster Distanz finden Allgemeine Java-Themen 3
so_ein_Komischer Erste Schritte java Math Klasse finden? Allgemeine Java-Themen 2
E 3D Objekte in 2D Bild finden Allgemeine Java-Themen 5
B Muster in 2D-Array finden Allgemeine Java-Themen 4
F Punkte in einem Bild finden Allgemeine Java-Themen 10
E Tool um Methodenaufrufe aus bestimmten Pkg zu finden Allgemeine Java-Themen 2
K Referenzen finden Allgemeine Java-Themen 6
R Zusammenhängende Werte in 2-dim. Array finden und zählen Allgemeine Java-Themen 3
D Face.com - Gesicht im Bild finden Allgemeine Java-Themen 3
M Typ einer inneren Klasse mit reflections finden Allgemeine Java-Themen 7
A Methoden ohne Referenzen finden Allgemeine Java-Themen 9
D JNI->kann abhängige Bibliotheken einer DLL nicht finden Allgemeine Java-Themen 4
S main() class finden Allgemeine Java-Themen 7
K Eclipse Export - Bilder finden Allgemeine Java-Themen 7
A Signifikante Array-Indizes finden Allgemeine Java-Themen 3
D Wort in Text mit >100.000 Wörter finden Allgemeine Java-Themen 7
D Passende Name für Methoden finden Allgemeine Java-Themen 3
C reguläre Ausdrücke finden nicht was sie finden sollen Allgemeine Java-Themen 8
M Pfad in int[][] finden Allgemeine Java-Themen 4
D [debuggen] nich geschlossene Resource "finden" Allgemeine Java-Themen 5
P Windows Media Player starten / finden Allgemeine Java-Themen 2
S Outline um Rechtecke finden..? Allgemeine Java-Themen 4
S Dateipfad finden Allgemeine Java-Themen 2
S String in Datei finden und ersetzen Allgemeine Java-Themen 11
S groesstes Rechteck innerhalb eines Polygons/Shape finden..? Allgemeine Java-Themen 5
S String in Datei finden Allgemeine Java-Themen 5
H Buchstabe in String finden Allgemeine Java-Themen 3
J Länge einer ArrayList finden? Allgemeine Java-Themen 4
B logischen Fehler finden Allgemeine Java-Themen 4
B Annotationen finden Allgemeine Java-Themen 2
H RandomAccessFile - Zeile finden Allgemeine Java-Themen 5
H2SO3- jar soll eigenen namen(pfad) finden Allgemeine Java-Themen 12
S ResourceBundle: Locale Datei in Jar finden Allgemeine Java-Themen 3
megachucky Java Reflection -> versteckte Felder finden? Allgemeine Java-Themen 3
A alle nicht-dplikate finden Allgemeine Java-Themen 14
Landei Trick für Duplikate in Liste finden? Allgemeine Java-Themen 9
V exe finden? Allgemeine Java-Themen 7
T [Joda Time] Nächsten Samstag finden Allgemeine Java-Themen 8
B ProcessBuilder: kann Ordner im home nicht finden Allgemeine Java-Themen 2
G Ordner für Dateien finden Allgemeine Java-Themen 3
P Ungenutzte Klassen und Methoden finden Allgemeine Java-Themen 2
G die mittlere von 5 Zahlen nur mit if und else finden Allgemeine Java-Themen 48
C Speicherfresser finden? Allgemeine Java-Themen 9
E Doppelten Text in Datei finden? Allgemeine Java-Themen 11
S Relativen Pfad zu Pfad für File finden Allgemeine Java-Themen 4
C kürzester weg zwischen zwei Punkten, Koordinaten finden Allgemeine Java-Themen 15
V Performance Leck finden Allgemeine Java-Themen 3
S Windows Fenster finden Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben