Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Zugriff auf serielle Schnittstelle

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

Ich brauche eine Möglichkeit mit Java auf die serielle Schnittstelle zuzugreifen. Ich habe es mit der comm-API von Sun versucht und zwar mit folgendem Code:



Enumeration portList;
portList = CommPortIdentifier.getPortIdentifiers();

while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
// if (portId.getName().equals("COM1")) {
if (portId.getName().equals("/dev/term/a")) {
SimpleRead reader = new SimpleRead();
}
}
}
[/PHP]

Dummerweise ist die portList in diesem Beispiel immer leer und ich weiß nicht an was es liegen könnte.

Zu meinem Vorhaben:

Ich habe einen mobilen BarcodeScanner der die eingelesenen Scan zwischenspeichert. Dieser wird später an den Rechner angeschlossen und soll dort ausgelesen werden. Verbunden wird der Scanner über den seriellen Port am Rechner. Jetzt benötige ich eben eine Möglichkeit auf die Daten des Scanners zuzugreifen.

Läßt sich das mit der Java NIO irgentwie machen, denn die comm-API scheint nicht zu funktionieren, oder ich verwende sie nur falsch (habe allerdings auch die zugehörigen Samples ausprobiert, welche auch nicht funktionierten.)

Wer kann mir weiterhelfen?

danke

markus

Dummerweise ist die portList in diesem Beispiel immer leer und ich weiß nicht an was es liegen könnte.
AFAIK benötigt javacomm noch native Libraries, um richtig zu arbeiten. Hast du die DLL/.SO auch mit eingebunden?

Läßt sich das mit der Java NIO irgentwie machen
Nein, lässt sich nicht.

Direkter Zugriff auf Hardware (nichts anderes ist die serielle Schnittstelle) erhältst du nur über Zusatz-Packages, und das einzige wirklich funktionierende, was mir bekannt ist wäre auch javacomm.

  • Autor

Ich war eigentlich der Meinung es so gemacht zu haben, wie es in der Beschreibung stand, aber ich werde das nochmal durchgehen. Trotzdem danke.

Ich melde mich wenn es was neues gibt.

  • Autor

win32com.dll in c:/programme/java/jdk1.5.0/bin kopiert

comm.jar+javax.comm.properties in c:/programme/java/jdk1.5.0/lib

Danach habe ich in Eclipse die comm.jar als externe Jar-Datei in mein Projekt eingebunden und das Sample SimpleRead getestet. Folge war, dass keine Elemente in CommPortIdentifier.getPortIdentifiers(); waren.

Was mache ich falsch?

  • Autor

Das Problem besteht immer noch. Und ich finde meinen Fehler nicht.

Weiß keiner mehr darüber?

Java gibt mir auch keine Fehlermeldung oder ähnliches. Nur wenn ich explicit sage "Öffne COM1" bringt er die Meldung "Port not found"

Ich weiß nicht mehr weiter.

Gruss

markus

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.