Der Brick Daemon ist ein Daemon (bzw. Service für Windows) der als eine Brücke zwischen Bricks/Bricklets und den API Bindings für die verschiedenen Programmiersprachen fungiert.
Der Daemon leitet Daten zwischen der USB Verbindung und den TCP/IP Sockets hin und her. Bei der Benutzung der API Bindings wird eine TCP/IP Verbindung zum Brick Daemon hergestellt. Dieses Konzept erlaubt es Bindings für nahezu jede Programmiersprache ohne Abhängigkeiten zu erstellen. Dadurch ist es möglich Bricks und Bricklets über eingebettete Geräte wie Smartphones zu programmieren, die nur spezifische Programmiersprachen unterstützten.
Zusätzlich ist es möglich den PC auf dem der Brick Daemon läuft von dem PC auf dem der Benutzercode läuft zu trennen. Dadurch ist das Steuern über ein Smartphone oder auch über das Internet möglich.
Standardmäßig loggt Brick Daemon Nachrichten über Informationen, Warnungen und Fehler. Diese beinhalten auch Informationen über USB Hotplug und TCP/IP Verbindungen.
Linux und macOS: Nachrichten werden in diesem Log-Datei geschrieben:
/var/log/brickd.log
Windows: Nachrichten werden einer Log-Datei namens brickd.log
im Brick
Daemon Data-Verzeichnis gespeichert:
Windows XP:
C:\Dokumente und Einstellungen\All Users\Application Data\Tinkerforge\Brickd\brickd.log
Windows Vista oder neuer:
C:\ProgramData\Tinkerforge\Brickd\brickd.log
Das logviewer.exe
Tool (Teil der brickd Installation) kann diese Log-Datei
anzeigen und beinhaltet auch eine Live Log Ansicht.
Falls der Standard Logging Einstellung nicht genug Details ausgibt, um ein Problem debuggen zu können, dann kann das Debug Log Level aktiviert werden. Dies ist standardmäßig nicht aktiviert, da es die Menge der ausgegebenen Log-Nachrichten stark erhöht, so dass es einen Einfluss auf den Nachrichtendurchsatz von brickd haben kann.
logviewer.exe
Tool stellt ebenfalls Live Log Ansicht
bereit, die auf Debug Level gestellt werden kann.Brick Daemon verwendet eine Konfigurationsdatei mit Schlüssel-Wert Format:
Linux und macOS: Die Konfigurationsdatei heißt brickd.conf
und ist hier
gespeichert:
/etc/brickd.conf
Windows: Die Konfigurationsdatei heißt brickd.ini
und ist im Brick Daemon
Data-Verzeichnis gespeichert:
Windows XP:
C:\Dokumente und Einstellungen\All Users\Application Data\Tinkerforge\Brickd\brickd.ini
Windows Vista oder neuer:
C:\ProgramData\Tinkerforge\Brickd\brickd.ini
Das logviewer.exe
Tool (Teil der brickd Installation) kann diese
Konfigurationsdatei bearbeiten.
Nach Änderungen an der Konfigurationsdatei muss Brick Daemon neugestartet werden um die Änderungen zu übernehmen:
Linux (systemd):
sudo systemctl restart brickd
Linux (SysVinit):
sudo /etc/init.d/brickd restart
Windows: Mit dem logviewer.exe
Tool (Teil der brickd Installation) kann
der Brick Daemon Dienst neustarten werden.
macOS:
sudo launchctl stop com.tinkerforge.brickd
sudo launchctl start com.tinkerforge.brickd
Wenn die Konfigurationsdatei fehlerhaft ist meldet Brick Daemon dies im Log.
Brick Daemon unterstützt seit Version 2.1.0 WebSockets. Diese sind standardmäßig deaktiviert. Um WebSockets zu aktivieren muss ein WebSockets-Port in der Brick Daemon Konfigurationsdatei eingetragen werden.
Die WebSockets-Port Option hat den Schlüssel listen.websocket_port
. Ein
Wert von 0 oder das Fehlen des listen.websocket_port
Schlüssels führt zur
deaktiviert der WebSocket-Unterstützung. Hier der Authentifizierungsabschnitt
einer Beispiel-Konfiguration, das dem empfohlenen Wert 4280 als
WebSockets-Port verwendet:
listen.websocket_port = 4280
Danach muss Brick Daemon neugestartet werden, um die Änderungen an der Konfigurationsdatei zu übernehmen. Ab jetzt kann die Browser-Version der JavaScript Bindings sich zum Brick Daemon verbinden und Bricks und Brickets steuern.
Bemerkung
Da WebSockets es grundsätzlich ermöglichen, dass jede Webseite in ihrem Browser sich mit ihren Bricks und Bricklets verbinden kann, empfehlen wir Authentifizierung in Kombination mit WebSockets zu verwenden.
Brick Daemon unterstützt seit Version 2.1.0 Authentifizierung. Diese ist standardmäßig deaktiviert. Um Authentifizierung zu aktivieren muss ein Authentifizierungsgeheimnis in der Brick Daemon Konfigurationsdatei eingetragen werden.
Das Authentifizierungsgeheimnis kann maximal 64 ASCII Zeichen lang sein und hat
den Schlüssel authentication.secret
. Ein leerer Wert oder das Fehlen des
authentication.secret
Schlüssels führt zur deaktiviert der Authentifizierung.
Hier der Authentifizierungsabschnitt einer Beispiel-Konfiguration die
My Authentication Secret!
als Authentifizierungsgeheimnis verwendet:
authentication.secret = My Authentication Secret!
Danach muss Brick Daemon neugestartet werden, um die Änderungen an der Konfigurationsdatei zu übernehmen. Ab jetzt muss jede TCP/IP Verbindung zum Brick Daemon zuerst nachweisen, dass sie das Authentifizierungsgeheimnis kennt, bevor normale Kommunikation stattfinden kann. Für mehr Informationen zur Authentifizierung siehe das dazugehörige Tutorial.
Seit Brick Daemon Version 1.0.8 ist es möglich die aktuell installierte Brick Daemon Version zu erfragen. Dafür unterstützt der Brick Daemon den Kommandozeilenparameter --version:
Linux:
brickd --version
Windows XP:
"C:\Programme\Tinkerforge\Brickd\brickd.exe" --version
Windows Vista oder neuer:
"C:\Programme (x86)\Tinkerforge\Brickd\brickd.exe" --version
macOS (bis Brick Daemon 2.2.1):
/usr/libexec/brickd.app/Contents/MacOS/brickd --version
macOS (seit Brick Daemon 2.2.2):
/usr/local/libexec/brickd.app/Contents/MacOS/brickd --version