# 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