Dieses Paket enthält ein Plugin für das ControlPi-System, mit dem von einem seriellen Device JSON-Nachrichten gelesen und auf den Message-Bus des ControlPi-Systems gelegt werden können. Alle auf der seriellen Schnittstelle gelesenen Zeilen, die keine JSON-Objekte sind, werden ignoriert.
Eine ausführliche Dokumentation ist in der Dokumentation der ControlPi-Infrastruktur zu finden.
Der Code dieses Plugins kann mit git geclonet werden:
$ git clone git://git.graph-it.com/graphit/controlpi-readjson.git
(Falls Zugang zu diesem Server per SSH besteht und Änderungen gepusht werden sollen, sollte stattdessen die SSH-URL benutzt werden.)
Dann kann es editierbar in ein virtuelles Environment installiert werden:
(venv)$ pip install --editable <Pfad zum Code-Repository>
Auf dem Raspberry Pi (oder wenn keine Code-Änderungen gewünscht sind) kann es auch direkt, ohne einen git-Clone installiert werden:
(venv)$ pip install git+git://git.graph-it.com/graphit/controlpi-readjson.git
Eine minimale ControlPi-Konfiguration, die dieses Plugin benutzt, ist im git-Repository enthalten:
{
"Log": {
"plugin": "Log",
"filter": [{}]
},
"SerialTest": {
"plugin": "ReadJSON",
"device": "/tmp/serialout"
}
}
Als weitere Schlüssel können in der Konfiguration "baudrate"
, "parity"
und "stopbits"
angegeben werden, wobei die Voreinstellungen 115200
,
"none"
und 1
sind.
Wir können das Plugin ohne serielle Hardware testen, in dem wir mit socat
eine virtuelle serielle Verbindung aufmachen:
$ socat -d -d pty,raw,echo=0,link=/tmp/serialin pty,raw,echo=0,link=/tmp/serialout
Dann kann die Beispiel-Konfiguration von /tmp/serialout
lesen und mit
echo
Test-Nachrichten in /tmp/serialin
geschrieben werden: