semesterprojekt-bluetooth-p.../docs/pfc200.md

63 lines
2.7 KiB
Markdown

# PFC200 mit Bluetooth Dongle
Um mit dem Gerät arbeiten zu können, sollte verstanden werden, wie eine Verbindung aufgebaut wird und welche Skripte eingerichtet werden sollten.
## Per SSH mit dem Gerät verbinden
1. sich per LAN physisch mit dem Gerät verbinden (äußerer Port)
2. sich statisch eine IPv4-Adresse zuweisen (empfohlen: `192.168.123.10`)
3. sich mit dem Gerät per ssh verbinden: `ssh root@192.168.123.200`
4. passwort: in grün auf dem Gerät (Kleinbuchstaben)
## Skripte
Die Aufgaben des Gerätes werden über verschiedene Skripte durchgeführt.
**Hinweis**: Der Pfad für jedes Skript ist hier mit aufgelistet. Eventuell müssten die Skripte mit `chmod +x ${Dateiname}` ausführbar gemacht werden.
### (1) Initale Skripte
Das Skript wird bei Systemstart ausgeführt, um auto_read.sh automatisch auszuführen.
Der Aufruf über init.d läuft folgend ab:
1. `/etc/inittab` startet `/etc/init.d/rcS`
2. `/etc/init.d/rcS` startet alle Skripte unter `/etc/rc.d` mit dem Argument `start`, also auch `S99_init_bluetooth_listener`.Hierbei handelt es sich um einen Symlink `S99_init_bluetooth_listener -> /etc/init.d/initBluetoothListener`.
### (2) auto_read.sh
Das Skript konfiguriert das Bluetooth-Dongle für eingehende Bluetooth-Verbindungen und startet einen Listening-Prozess auf diesem, um eingehende Strings direkt als Argument mit auto_cert.sh auszuführen.
Dateipfad: `/home/script/auto_read.sh`
Beispiel: `/home/script/auto_read.sh`
### (3) auto_cert.sh
Das Skript erzeugt aus mittels einer ID ein SSL-Zertifikat, womit das Gerät sich in der Cloud authentifizieren kann, und konfiguriert entsprechend das Gerät. Das Zertifikat benutzt einen RSA-Algorithmus und wird unter `/etc/ssl` abgelegt.
Dateipfad: `/home/script/auto_cert.sh`
Beispiel: `/home/script/auto_cert.sh example-ID`
Parameter:
* `$1 (first argument)`: Device ID
### (4) auto_conf.sh
Das Skript konfiguriert die `/etc/dataagent/dataagent.config` auf dem Gerät entsprechend der Eingaben.
* Die Einstellungen werden erst als Flag mit - benannt und dann wird der Wert hierzu angegeben (z.B. `-enabled true`).
* Das Skript prüft automatisch ob die Eingabe Sinn macht ( z.B. prüft ob Eingabe Boolean ist) und gibt im Problemfall aus welche Eingabe nicht erlaubt ist.
* Optionen welche nicht als Flag angegeben wurden werden automatisch geleert.
Dateipfad: `/home/script/auto_conf.sh`
Beispiel: `/home/script/auto_conf.sh -enabled true -clientid ${CN} -host example.azure-devices.net -usetls false`
Parameter:
* `-enabled`: gibt an ob der Konfigurations Slot aktiv ist
* `-clientid`: ein String, der die ID des Gerätes bestimmt
* `-host`: die Cloud-URL
* `-usetls`: gibt an ob tls benutzt werden soll