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

2.7 KiB

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