Jump to content

Java IPConnection.DisconnectedListener funktioniert nicht?


Recommended Posts

Hallo zusammen,

ich habe versucht, einen DisconnectedListener zu implementieren, stoße dabei aber auf Probleme.

Wenn ich die LAN-Verbindung zwischen der Ethernet Extension und dem Brick unterbreche, wird der DisconnectedListener nicht ausgelöst. Auch beim Trennen der Stromversorgung passiert nichts.

Erst als ich einen ConnectedListener hinzugefügt und AutoReconnect aktiviert habe, wurde der DisconnectedListener ausgelöst. Allerdings geschieht dies genau zu dem Zeitpunkt, an dem sich der AutoReconnect wieder verbindet (also wenn der ConnectedListener ausgeführt wird), was etwas dauert. Der DisconnectedListener wird also nicht direkt beim Verlust der Verbindung aktiviert.

Entferne ich AutoReconnect und den ConnectedListener wieder, wird der DisconnectedListener überhaupt nicht ausgelöst.

Ist dieses Verhalten so gewollt? Es erscheint mir ziemlich unsinnig, wenn beide Listener quasi zur gleichen Zeit triggern.

Was kann ich tun? Was mache ich falsch? Was habe ich nicht verstanden? :D

 

public void connectToStack() {
        try {
            ipCon = new IPConnection();

            ipCon.setTimeout(250);
            ipCon.setAutoReconnect(true);

            ipCon.addDisconnectedListener(new IPConnection.DisconnectedListener() {
                public void disconnected(short disconnectReason) {
                    System.out.println("Disco");
                }
            });

            ipCon.addConnectedListener(new IPConnection.ConnectedListener() {
                public void connected(short con) {
                    System.out.println("conn");
                }
            });

            ipCon.connect(hostname, port);
            logger.info(
                    String.format("Successfully connected to Tinkerforge stack #%s (%s:%s)", number, hostname, port));

            isConnectedToStack = true;

        } catch (NetworkException | AlreadyConnectedException e) {
            logger.severe(
                    String.format("Failed to connect to Tinkerforge stack #%s (%s:%s)", number, hostname, port));

            isConnectedToStack = false;
        }
    }

 

Viele Grüße

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...