Benutzer-Werkzeuge

Webseiten-Werkzeuge


bidib_broker_family

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
bidib_broker_family [2023/10/05 11:55] – [Kann ich mit dem BiDiB-Broker mehr als ein BiDiB-Interface bedienen?] Michaelbidib_broker_family [2023/12/18 18:33] (aktuell) – [Das GBMBoost- bzw. IF2-Interface wird nicht gefunden. Was kann ich tun?] Michael
Zeile 4: Zeile 4:
 BiDiB-Broker ist eine Java Anwendungen für das BiDiB-System zur Kommunikation mit BiDiBus und netBiDiB-Klienten via TCP/IP. Die Implementierung folgt der Protokollerweiterung [[http://www.bidib.org/transport/bidib_net.html|netBiDiB]] des universellen [[http://bidib.org/protokoll/bidib_general.html|BiDiB]]-Protokolls. BiDiB-Broker ist eine Java Anwendungen für das BiDiB-System zur Kommunikation mit BiDiBus und netBiDiB-Klienten via TCP/IP. Die Implementierung folgt der Protokollerweiterung [[http://www.bidib.org/transport/bidib_net.html|netBiDiB]] des universellen [[http://bidib.org/protokoll/bidib_general.html|BiDiB]]-Protokolls.
  
-<WRAP center round info 75%>+<WRAP center round info 65%>
 Der BiDiB-Broker (im Folgenden: **Broker**) dient als Mittler zum BiDiBus (RS232) und zwischen TCP/IP-fähigen Anwendungen und Geräten. (Stichwort: **BiDiB goes Netzwerk**) Der BiDiB-Broker (im Folgenden: **Broker**) dient als Mittler zum BiDiBus (RS232) und zwischen TCP/IP-fähigen Anwendungen und Geräten. (Stichwort: **BiDiB goes Netzwerk**)
 </WRAP> </WRAP>
Zeile 47: Zeile 47:
 Zusammenfassung der Fragen aus dem Forum Zusammenfassung der Fragen aus dem Forum
 </WRAP> </WRAP>
 +
 +==== Wie kann ich Broker mit der Desktop-Verknüpfung in Windows starten? ====
 +Laut Handbuch wird empfohlen, für den vereinfachten Start Brokers eine passende Batchdatei von der Fichtelbahnseite in das Broker-Verzeichnis zu laden und anschließend eine Verknüpfung auf dem Desktop abzulegen.
 +
 +Wenn man die Verknüpfung beim ersten Mal aufruft, verweigert Windows u.U. den Start. Das läßt sich mit folgenden zwei Klicks beheben:
 +{{ :broker:warnungvorapp.jpg?nolink |}}
 +
 +----
  
 ==== Wie finde ich die Konfigurations- und Protokolldateien? ==== ==== Wie finde ich die Konfigurations- und Protokolldateien? ====
Zeile 58: Zeile 66:
 ---- ----
  
-==== Wie kann ich Broker mit der Desktop-Verknüpfung in Windows starten? ==== +==== Kann ich mit dem BiDiB-Broker mehr als ein BiDiB-Interface bedienen? ==== 
-Laut Handbuch wird empfohlenfür den vereinfachten Start Brokers eine passende Batchdatei von der Fichtelbahnseite in das Broker-Verzeichnis zu laden und anschließend eine Verknüpfung auf dem Desktop abzulegen.+Ja, das funktioniert mit Broker als Hub, also in der Standardeinstellung.
  
-Wenn man die Verknüpfung beim ersten Mal aufruftverweigert Windows u.U. den StartDas läßt sich mit folgenden zwei Klicks beheben+Eine Anwendungsmöglichkeit besteht darin, einen GBMBoost zum Fahren und einen weiteren zum Programmieren zu verwenden: 
-{{ :broker:warnungvorapp.jpg?nolink |}}+{{ :broker:brokeraufpaspimit3bidibinterfaces.jpg?nolink |}} 
 +Im Beispiel sehen wir den BiDiB-Monitor, der über (W)LAN mit dem BiDiB-Broker (Pi3B-BiDiB) auf einem Raspberry Pi4b+ verbunden ist. Am Raspi sind angeschlossen ein BiDiB-Pi1 (ebenfalls mit einem Broker ausgestattet) über die serielle Schnittstelleein GBMBoost und ein IF2 über USB-Schnittstellen. An den drei BiDiB-Interface-Baugruppen sind unterschiedliche Knoten angeschlossen. 
 + 
 +---- 
 + 
 +==== Was muss ich beachten, wenn ich mehr als ein BiDiB-Interface in meinem System verwenden möchte? ==== 
 +Auf die [[https://forum.opendcc.de/viewtopic.php?p=102745#p102745|Frage vom Anwender zrhbert]]:\\ 
 +//"Kann ich den Bus in mehrere Teile zerlegen, so dass die einzeln per netBidiB angeschlossen sind? Einerseits scheint mir das möglich, z.B. bei zwei oder drei GMBBoost Mastern jeweils einen Avatar am USB-Interface vorschalten. Aber bekomme ich dann ein Problem, weil das DCC-Signal dann von mehreren unterschiedlichen Mastern erstellt wird?"// 
 + 
 +Bei einer normalen Anlage sind die Gleisabschnitte von verschiedenen Boostern immer wieder mal durch Fahrzeuge über der Trennstelle verbunden. Daher ist es zwingend erforderlich, nur eine DCC-Quelle zu haben. 
 + 
 +Eine Aufteilung ist u.U. nur dann sinnvoll, wenn die DCC-Signal-Erzeuger unabhängige Bereiche versorgen, also z.B. Eisenbahn, Straßenbahn und Schmalspur-Bahn. Oder bei sehr großen Anlagen und **Einsatz besonderer Übergabeschaltungen** zwischen den DCC-Domänen. 
 + 
 +Anders sieht es beim "Schalten und Walten" aus. Da kann eine Aufteilung sinnvoll sein, wenn z.B. Steuerungsprogramme mit mehreren "Zentralen" zusammenarbeiten können. Dafür würden sich auch statt eines GBMBoost das Gespann IF2+Raspi+Broker oder später IFnet alleine anbieten. 
 + 
 +---- 
 + 
 +==== Das GBMBoost- bzw. IF2-Interface wird nicht gefunden. Was kann ich tun? ==== 
 +Zur [[https://forum.opendcc.de/viewtopic.php?p=102859#p102859|E-Mail-Anfrage von Renegee]]: \\ 
 +//"Der BiDiB-Broker-Hub läuft auf einem PC mit Windows 11 Betriebssystem (java -jar bidib-broker-latest.jar). 
 +Das Pairing mit dem Wizard funktioniert, aber beim versuchten Verbindungsaufbau wird der angeschlossene GBMBoost nicht vom Broker-Hub gefunden. 
 +Die direkte Verbindung zwischen Wizard und GBMBoost funktioniert dagegen einwandfrei. 
 +Auf einem Raspi 4 zeigt sich das gleiche BildWizard OK, Broker NOK."// 
 + 
 +Aus unterschiedlichen Gründen kann das automatische Auffinden eines GBMBoost- oder IF2-Interfaces, also der USB-/seriellen Schnittstelle, im Broker misslingen. Das kann auch passieren, obwohl der Wizard die Verbindung anzeigt. 
 + 
 +In diesem Fall kann man Broker mitteilen, die automatische Erkennung abzuschalten und stattdessen bestimmte Port(s) zu bevorzugen. 
 + 
 +Dazu muss er den Aufruf erweitern z.B. zu: 
 +  Betriebssystem  Beispiel 
 +  Windows         java -jar bidib-broker-latest.jar --serial-device.preferred-ports=com3 
 +  Raspian         java -jar bidib-broker-latest.jar --serial-device.preferred-ports=/dev/serial0 
 +Mehrere bevorzugte Ports können mit Komma getrennt (ohne Leerzeichen) angegeben werden. 
 + 
 +<WRAP left round tip 90%> 
 +Die Bezeichnung der bevorzugten seriellen Schnittstelle kann bei Bedarf über den Wizard ermittelt werden. 
 +</WRAP> 
 + 
 +---- 
 + 
 +==== Können sich mehrere netBiDiB-Knoten automatisch am BiDiB-Broker anmelden? ==== 
 +Ja, das ist eine der Kernaufgaben vom Broker und mit der Version 0.12.3-SNAPSHOT implementiert. 
 + 
 +Das "Discovery" (mDNS) ermöglicht eine automatische Verbindung ohne Eingriff des Anwenders. 
 + 
 +{{ :broker:monitor_broker_2xz21lan-agent_2xbidibser.jpg?nolink |}} 
 +Im Beispiel: 
 +  - 1 x Z21Lan-Agent 
 +  - 1 x Z21Lan-Agent (Hub), der eine WLANmaus bedient 
 +  - 1 x GBMBoost mit Anhang 
 +  - 1 x IF2 mit einer "Datenschleuder" für ein wenig Traffic 
 + 
 +Eine ausführliche Beschreibung von Wolfgang Kufer findet sich im Forum: [[https://forum.opendcc.de/viewtopic.php?p=103209#p103209|IFnet, wie findet man die IP?]]. Das Vorgehen gilt natürlich auch für den BiDiB-Broker. 
 + 
 +---- 
 + 
 +==== Können netBiDiB-Knoten ohne automatische Anmeldung (mDNS) verbunden werden? ==== 
 +Ja, neben der automatischen Anmeldung können auch netBiDiB-Knoten, die die automatische Anmeldung (mDNS) nicht beherrschen. verbunden werden.\\ 
 +Dazu muss ein Anwender die Netzwerkadresse kennen und dem netBiDiB-Knoten mitteilen. Wir haben für diese Fälle einen "Gasteingang" definiert. Broker hört am "Gasteingang" auf Port 62874.\\ 
 +<WRAP center round tip 70%> 
 +Netzwerkadresse und Port zeigt Broker übrigens auf seiner Pairing-GUI an. 
 +</WRAP> 
 + 
 +Dieses Verfahren sollte allerdings nur in Ausnahmefällen Verwendung finden! 
 + 
 +Siehe auch die ausführliche Beschreibung von Wolfgang Kufer im Forum: [[https://forum.opendcc.de/viewtopic.php?p=103209#p103209|IFnet, wie findet man die IP?]]. Das Vorgehen gilt natürlich auch für den BiDiB-Broker.
  
 ---- ----
Zeile 83: Zeile 156:
 Diese Ports stehen Broker für die netBiDiB-Verbindungen nicht mehr zur Verfügung. Aber Broker kann im Bedarfsfall mit jeweils anderen Ports gestartet werden.\\ Diese Ports stehen Broker für die netBiDiB-Verbindungen nicht mehr zur Verfügung. Aber Broker kann im Bedarfsfall mit jeweils anderen Ports gestartet werden.\\
  
-Das Port 62874 - für "einfache" netBiDiB-Knoten, die "Bonjour" nicht beherrschen - ändert man mit z.B.:\\ +Der Port 62874 - für "einfache" netBiDiB-Knoten, die "Bonjour" nicht beherrschen - ändert man mit z.B.:\\ 
-**java -jar bidib-broker-latest.jar --connection.side-entrance.port=62873**\\+  java -jar bidib-broker-latest.jar --connection.side-entrance.port=62870
 Allerdings muss man die Portnummer in allen "einfachen" Anwendungen ebenfalls anpassen. Allerdings muss man die Portnummer in allen "einfachen" Anwendungen ebenfalls anpassen.
  
-Das Port 62875 ist für die Kommunikation mit einem Host-System zuständig, wie z.B. dem Wizard. Änderung der Portnummer, z.B.:\\ +Der Port 62875 ist für die Kommunikation mit einem Host-System zuständig, wie z.B. dem Wizard. Änderung der Portnummer, z.B.:\\ 
-**java -jar bidib-broker-latest.jar --master-data.tcp-port-number=62877**\\ +  java -jar bidib-broker-latest.jar --master-data.tcp-port-number=62877 
-Die Port-Nummer muss natürlich frei sein und auch im Host-System entsprechend angepasst werden.\\+Die Portnummer muss natürlich frei sein und auch im Host-System entsprechend angepasst werden.\\
  
 <WRAP center round tip 80%> <WRAP center round tip 80%>
Zeile 97: Zeile 170:
 ---- ----
  
-==== Was tun, wenn Broker mit der Meldung "Web server failed to start. Port 62876 was already in use." abbricht? ==== +==== Ich brauche den voreingestellten Port 62875 für andere ZweckeKann sich ein Host trotzdem mit dem Broker verbinden? ====
-Unter widrigen Umständen kann der Start Brokers mit der folgenden Meldung scheitern: +
-{{ :broker:errorportinuse.jpg?nolink |}} +
-In diesem Falle verwendet eine andere Anwendung das Port 62786, das für die Pairing-GUI zuständig ist. Oder Broker ist irregulär beendet worden und konnte das Port nicht mehr schließen. Damit steht das Port für den aktuellen Broker nicht mehr zur Verfügung.+
  
-Wenn man die Anwendung kenntsollte sie beendet und nach Broker gestartet werdenHat jetzt die andere Anwendung das Problem, bleibt die Möglichkeit Broker mit einem anderen Port zu starten, z.B.:\\ +Ja, das funktioniert. Allerdings muss man Broker Bescheid geben[[https://forum.opendcc.de/wiki/doku.php?id=bidib_broker_family#wie_kann_broker_starten_obwohl_die_gewuenschten_ports_belegt_sind|wie auch oben beschrieben]]. 
-**java -jar bidib-broker-latest.jar --server.port=62879**\\ +Den Port für diesen "Haupteingang" verschiebt man mit dem zusätzlichen Startparameter, z.B.: 
-In diesem Beispiel muss das Port ausprobiert werden und in der Browser-GUI entsprechend übernommen werden.\\ +   java -jar bidib-broker-latest.jar --master-data.tcp-port-number=62900 
- +Für den Host ist der Broker in diesem Beispiel jetzt über Port 62900 erreichbar
-<WRAP center round alert 82%> +<WRAP center round tip 70%> 
-Ist die blockierende Anwendung nicht zu ermittelt, bleibt als Abhilfe nur die Brechstange, indem der Verursacher identifiziert und radikal beendet wird. Hier unter Windows am Beispiel Port 62876: +Der Bereich für frei definierbare Ports liegt zwischen 49152 und 65535.
-  C:\BiDiB>netstat -ano | find "62876" +
-   TCP  0.0.0.0:62876  0.0.0.0:  ABHÖREN  11864 +
-   TCP  [::]:62876     [::]:     ABHÖREN  11864 +
-  C:\BiDiB>taskkill /pid 11864 /f +
-  ERFOLGREICH: Der Prozess mit PID 11864 wurde beendet. +
-  C:\BiDiB> +
- +
-Auf dem Raspberry Pi reicht: +
-  pi@Pi3B-BiDiB:~ $ sudo pkill -2 -f bidib-broker-latest.jar +
-   +
-  Vorher und nachher prüfen, ob Broker läuft: +
-  pi@Pi3B-BiDiB:~ $ ps ax | grep bidib-broker-latest.jar  +
-</WRAP> +
- +
-<WRAP center round important 90%> +
-Das Überschreiben der Datei **bidib-broker-latest.jar** im laufenden Betrieb und anschließendem Neustart wird dagegen nicht empfohlen, da man dem Prozess die Basis raubt - mit u.Uunvorhergesehene Nebenwirkungen!+
 </WRAP> </WRAP>
  
Zeile 147: Zeile 201:
  
 Die Startzeile für Broker mit oben aufgeführten Parameter würde wie folgt aussehen:\\ Die Startzeile für Broker mit oben aufgeführten Parameter würde wie folgt aussehen:\\
-**java -jar bidib-broker-latest.jar --connection.side-entrance.port=62873 --master-data.tcp-port-number=62877 --server.port=62879 –logging.level.org.bidib.broker=INFO**\\+  java -jar bidib-broker-latest.jar --connection.side-entrance.port=62873 --master-data.tcp-port-number=62877 --server.port=62879 -–logging.level.org.bidib.broker=INFO
  
 ---- ----
  
-==== Kann ich mit dem BiDiB-Broker mehr als ein BiDiB-Interface bedienen? ==== +==== Was tun, wenn Broker mit der Meldung "Web server failed to start. Port 62876 was already in use." abbricht? ==== 
-Ja, das funktioniert mit Broker als Hub, also in der Standardeinstellung.+Unter widrigen Umständen kann der Start Brokers mit der folgenden Meldung scheitern: 
 +{{ :broker:errorportinuse.jpg?nolink |}} 
 +In diesem Falle verwendet eine andere Anwendung der Port 62786, das für die Pairing-GUI zuständig ist. Oder Broker ist irregulär beendet worden und konnte den Port nicht mehr schließen. Damit steht der Port für den aktuellen Broker nicht mehr zur Verfügung.
  
-Eine Anwendungsmöglichkeit besteht darineinen GBMBoost zum Fahren und einen weiteren zum Programmieren zu verwenden+Wenn man die Anwendung kenntsollte sie beendet und nach Broker gestartet werden. Hat jetzt die andere Anwendung das Problem, bleibt die Möglichkeit Broker mit einem anderen Port zu starten, z.B.
-{{ :broker:brokeraufpaspimit3bidibinterfaces.jpg?nolink |}} +  java -jar bidib-broker-latest.jar --server.port=62879 
-Im Beispiel sehen wir den BiDiB-Monitor, der über (W)LAN mit dem BiDiB-Broker (Pi3B-BiDiB) auf einem Raspberry Pi4b+ verbunden istAm Raspi sind angeschlossen ein BiDiB-Pi1 über die serielle Schnittstelle, ein GBMBoost und ein IF2 über USB-SchnittstellenAn den drei BiDiB-Interface-Baugruppen sind unterschiedliche Knoten angeschlossen.+In diesem Beispiel muss der Port ausprobiert werden und in der Browser-GUI entsprechend übernommen werden.\\
  
-----+<WRAP center round alert 82%> 
 +Ist die blockierende Anwendung nicht zu ermittelt, bleibt als Abhilfe nur die Brechstange, indem der Verursacher identifiziert und radikal beendet wird. Hier unter Windows am Beispiel Port 62876: 
 +  C:\BiDiB>netstat -ano | find "62876" 
 +   TCP  0.0.0.0:62876  0.0.0.0:  ABHÖREN  11864 
 +   TCP  [::]:62876     [::]:     ABHÖREN  11864 
 +  C:\BiDiB>taskkill /pid 11864 /f 
 +  ERFOLGREICH: Der Prozess mit PID 11864 wurde beendet. 
 +  C:\BiDiB>
  
-==== Was muss ich beachten, wenn ich mehr als ein BiDiB-Interface in meinem System verwenden möchte? ==== +Auf dem Raspberry Pi reicht
-Auf die [[https://forum.opendcc.de/viewtopic.php?p=102745#p102745|Frage vom Anwender Didi L]]+  pi@Pi3B-BiDiB:~ $ sudo pkill -2 -f bidib-broker-latest.jar 
-//"Kann ich den Bus in mehrere Teile zerlegen, so dass die einzeln per netBidiB angeschlossen sind? Einerseits scheint mir das möglich, z.B. bei zwei oder drei GMBBoost Mastern jeweils einen Avatar am USB-Interface vorschalten. Aber bekomme ich dann ein Problem, weil das DCC-Signal dann von mehreren unterschiedlichen Mastern erstellt wird?"// +   
- +  Vorher und nachher prüfenob Broker läuft: 
-Bei einer normalen Anlage sind die Gleisabschnitte von verschiedenen Boostern immer wieder mal durch Fahrzeuge über der Trennstelle verbunden. Daher ist es zwingend erforderlich, nur eine DCC-Quelle zu haben+  pi@Pi3B-BiDiB:~ $ ps ax | grep bidib-broker-latest.jar  
- +</WRAP>
-Eine Aufteilung ist u.U. nur dann sinnvollwenn die DCC-Signal-Erzeuger unabhängige Bereiche versorgen, also z.B. Eisenbahn, Straßenbahn und Schmalspur-Bahn. Oder bei sehr großen Anlagen und **Einsatz besonderer Übergabeschaltungen** zwischen den DCC-Domänen+
- +
-Anders sieht es beim "Schalten und Walten" aus. Da kann eine Aufteilung sinnvoll sein, wenn Steuerungsprogramme mit mehreren "Zentralen" zusammenarbeiten können. Dafür würden sich auch statt eines GBMBoost das Gespann IF2+Raspi+Broker oder später IFnet alleine anbieten.+
  
 +<WRAP center round important 90%>
 +Das Überschreiben der Datei **bidib-broker-latest.jar** im laufenden Betrieb und anschließendem Neustart wird dagegen nicht empfohlen, da man dem Prozess die Basis raubt - mit u.U. unvorhergesehene Nebenwirkungen!
 +</WRAP>
  
  
bidib_broker_family.1696499714.txt.gz · Zuletzt geändert: 2023/10/05 11:55 von Michael

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki