1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Comm Ports auflisten (librxtx-java unter Debian Lenny)

  • Snafu
  • 21. Juni 2009 um 16:02
  • Unerledigt
  • Snafu
    5
    Snafu
    Mitglied
    Reaktionen
    3
    Punkte
    253
    Beiträge
    46
    • 21. Juni 2009 um 16:02
    • #1

    Hallo!
    Wollte mal versuchen mit Java die serielle Schnittstelle anzusprechen. Hab also zuerst mal ein kleines Prog geschrieben, dass mir die CommPorts auflisten soll.
    Um es kurz zu machen, es geht nicht wirklich. Statt mir die CommPorts aufzulisten spuckt es irgendwelche Infos über die librxtx aus.
    Kann mir wer helfen? Hab seit EPROG nichts mehr mit Java gemacht und da waren ja nur 0815 Gschichtln.

    Ausgabe:

    Code
    > java Comm 
    Comm Ports
    Experimental:  JNI_OnLoad called.
    Stable Library
    =========================================
    Native lib Version = RXTX-2.1-7
    Java lib Version   = RXTX-2.1-7
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    >

    Java Datei:

    PHP
    import gnu.io.*;
    import java.util.Enumeration;
    
    
    public class Comm
    {
            public static void listPorts()
            {
                    Enumeration ports = CommPortIdentifier.getPortIdentifiers();
                    while(ports.hasMoreElements()) {
                            CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
                            String type;
                            if(port.getPortType() == CommPortIdentifier.PORT_SERIAL)
                                    type = "Serial";
                            else
                                    type = "Parallel";
                            System.out.println("Type: " + type + " Name: " + port.getName());
    
    
            }
        }
    
        public static void main(String[] args)
        {
            System.out.println("Comm Ports");
            listPorts();
            System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        }
    }
    Alles anzeigen

    Microcontroller Tutor

  • sutupud
    13
    sutupud
    Mitglied
    Reaktionen
    59
    Punkte
    1.659
    Beiträge
    320
    • 21. Juni 2009 um 17:51
    • #2

    die nachrichten oben werden stammen von der rxtx-library selbst beim initialisieren ausgegeben und sind nicht inhalt der enumeration!
    wahrscheinlich werden gar keine elemente zurückgegeben. das kann daran liegen, dass entweder keine vorhanden sind, nicht erkannt werden (fehlende kernel-module, etc.) oder (am wahrscheinlichsten) die zugriffsrechte auf die devices nicht gegeben sind! das sind meistens /dev/parport* /dev/lp* oder /dev/ttyS*
    das einfachste, ist es, wenn man den user zu den entsprecheden gruppen (dialout bzw. lp) hinzufügt.

    "All through my life I've had this strange unaccountable feeling that something was going on in the world, something big, even sinister, and no one would tell me what it was."
    "No," said the old man, "that's just perfectly normal paranoia. Everyone in the Universe has that."

    😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😒😓😔😖😘😚😜😞😠😡😢😣😥😨😩😪😫😭😰😱😲😳😵😶😷

  • Snafu
    5
    Snafu
    Mitglied
    Reaktionen
    3
    Punkte
    253
    Beiträge
    46
    • 21. Juni 2009 um 18:03
    • #3

    Danke für die Antwort!
    Ich bin jetzt in dialout und lp drinnen (vorhin war ich nur in dialout) aber es hat nichts geändert.
    Selbst als root werden mir keine Ports angezeigt. Braucht Java bzw librxtx irgendein spezielles Kernelmodul? Ich kann die Ports ja verwenden mit minicom und anderen Programmen.

    Microcontroller Tutor

  • sutupud
    13
    sutupud
    Mitglied
    Reaktionen
    59
    Punkte
    1.659
    Beiträge
    320
    • 21. Juni 2009 um 18:18
    • #4

    hast du dich aus- und wieder eingelogt? gruppenänderungen werden nämlich nicht sofort sichtbar!

    edit: hm, wenns als root auch nicht geht, dann liegts sicher an was anderem.
    die geräte existieren? die native libraries werden auch korrekt geladen, sonst würds die meldungen nicht geben. java braucht kein spezielles kernelmodul, aber z.b. muss ppdev u.a. geladen sein, sonst existieren die /dev/... nicht und können nicht verwendet werden

    "All through my life I've had this strange unaccountable feeling that something was going on in the world, something big, even sinister, and no one would tell me what it was."
    "No," said the old man, "that's just perfectly normal paranoia. Everyone in the Universe has that."

    😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😒😓😔😖😘😚😜😞😠😡😢😣😥😨😩😪😫😭😰😱😲😳😵😶😷

    Einmal editiert, zuletzt von sutupud (21. Juni 2009 um 18:25)

  • Snafu
    5
    Snafu
    Mitglied
    Reaktionen
    3
    Punkte
    253
    Beiträge
    46
    • 21. Juni 2009 um 18:19
    • #5

    Hm, komisch. Den einen USB->Seriell Adapter erkennt er (ttyUSB0), den anderen nicht (ttyACM0).

    Microcontroller Tutor

  • sutupud
    13
    sutupud
    Mitglied
    Reaktionen
    59
    Punkte
    1.659
    Beiträge
    320
    • 21. Juni 2009 um 18:29
    • #6

    ich weiß nicht genau, wie rxtx die geräte sucht, möglicherweise nur aufgrund des namens, und wenn er nicht nach ttyACM* sucht, dann wirds auch nicht gefunden. in diesem fall würde es funktionieren einen symlink anzulegen (z.b. ttyACM0 -> ttyS0 o.ä.)

    "All through my life I've had this strange unaccountable feeling that something was going on in the world, something big, even sinister, and no one would tell me what it was."
    "No," said the old man, "that's just perfectly normal paranoia. Everyone in the Universe has that."

    😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😒😓😔😖😘😚😜😞😠😡😢😣😥😨😩😪😫😭😰😱😲😳😵😶😷

  • smirnov
    3
    smirnov
    Mitglied
    Punkte
    60
    Beiträge
    8
    • 22. Juni 2009 um 11:50
    • #7

    das mit dem ttyACM0 stimmt, die rxtx-library sucht nicht nach diesem namen. die enumeration der verfügbaren geräte ist aber im java-teil der library, d.h. das zu ändern ist leicht. wenn die ACM geräte in die such-liste eingetragen sind, funktionieren diese auch einwandfrei.

    lg
    Tom

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung