Skip to content

Latest commit

 

History

History
93 lines (74 loc) · 4.98 KB

Serial.md

File metadata and controls

93 lines (74 loc) · 4.98 KB

Serielles Interface

Allgemeine Befehle

routes DST1:HOP1,DST2:HOP2,...

Setzt die routen die vom Aktuellen Knoten verwendet werden.

  • DSTn:HOPn Pakete für DSTn werden an HOPn weitergeleitet.

Dieser Befehl ist auf den Sensorknoten nur zu testzwecken verfügbar. Diese Knoten bekonnen ihre Routen normalerweie über das Netzwerk vom Master.

ping NODE_ID

Sendet einen Echo-Request an einen Knoten.

  • NODE_ID Adresse des Knotens.

Damit der Reply auch ankommt, muss eine aus beiden Richtungen gültige Route existieren.

Sensor

Der Sensor kennt aktuell nur einen Befehl:

config NODE_ID KEY_STATUS KEY_CONFIG

Ändert die Netzwerk-Configuration eines Sensorknotens.

  • NODE_ID ist die Adresse dieses Knotens. Eine Adresse darf nur einmal vergeben werden.
  • KEY_STATUS ist der Gemeinsame Schlüssel der für den Status-Kanal verwendet wird.
  • KEY_CONFIG ist der Gemeinsame Schlüssel der für den Konfigurations-Kanal verwendet wird.
  • Beide Schlüssel sind 16 Byte lang und werden als Hex angegeben.

Master

Der Master spricht ein gemischtes (Mensch- und Maschinenlesbares) Protokoll. Dazu gibt es zusätzlich zu den "normalen" Befehlen spezielle Nachrichten die vom Knoten gesendet werden um den Host über Statusänderungen und Ergebnisse von Befehlen zu informieren. Diese werden im folgenden Updates genannt. Es darf immer nur einen Ausstehenden Befehl pro Node geben, dieser muss erst ACK'ed werden (ACK update) bevor der Nächste gesendet wird. Die einzigen Ausnahmen sind master_routes, ping und connect.

Befehle

connect NODE_ID RETURN_HOP TIMEOUT

Stellt eine Verbindung zu einem Knoten her.

  • NODE_ID Adresse des Knotens zu dem die Verbindung aufgebaut werden soll.
  • RETURN_HOP Erster Knoten auf dem Rückweg (Pfad von NODE_ID zum Master). Dies wird als temporäre Route verwendet bis die vollständigen Routen gesetzt wurden.
  • TIMEOUT Ist die länge des timeouts. Nach der angegebenen Zeit wird ds TIMEOUT Update gesendet und retransmit darf aufgerufen werden.

retransmit NODE_ID

Sendet das letzte Paket für einen Knoten erneut.

  • NODE_ID Adresse des Knotens

Dies darf nur aufgerufen erden, nachdem ein Knoten einen TIMEOUT gemeldet hat.

reset_routes NODE_ID DST1:HOP1,DST2,HOP2,...

set_routes NODE_ID DST1:HOP1,DST2,HOP2,...

Setzt / Ändert die Routen eines Knotens. reset_routes setzt dabei zuerst den Knoten (incl. aller Routen und Sensoreinstellungen) zurück. add_routes ändert nur die bestehenden Routen.

  • NODE_ID Adresse des Knotens der Konfiguriert wird. Bevor ein Knoten konfiguriert wird, muss eine Verbindung (connect) aufgebaut werden.
  • DSTn:HOPn Pakete für DSTn werden an HOPn weitergeleitet. Es können pro Aufruf maximal 20 Routen angegeben werden.

Die Route die bei connect angegeben wurde muss hier erneut spezifiziert werden.

configure_sensor NODE_ID CHANNEL INPUT_FILTER ST_MATRIX WND_SIZES REJECT_FILTER

Ändert die Konfiguration eines Sensors. Genauere Informationen zu den Parametern finden sich im state_estimation haeder.

  • NODE_ID Adresse des Knotens der Konfiguriert wird.
  • CHANNEL Nummer des Sensor-Kanals der Konfiguriert wrid.
  • INPUT_FILTER 3 Werte (uint16): MID_ADJUSTMENT,LOWPASS_WEIGHT,NUM_SAMPLES
  • ST_MATRIX 12 Werte (int16), Bedingungen für Zustandsübergänge.
  • WND_SIZES 4 Werte (uint16, max 1536), Festergrößen in den entsperchenden Zuständen.
  • REJECT_FILTER 2 Werte (uint16) REJECT_THRESHOLD,REJECT_CONSEC

enable_sensor NODE_ID CHANNEL_MASK SAMPLES_PER_SEC

Startet / Aktiviert die Sensoren.

  • NODE_ID Adresse des Knotens der Konfiguriert wird.
  • CHANNEL_MASK Bitfeld, ein gesetztes Bit steht für einen aktiven Sensor.
  • SAMPLES_PER_SEC Sampling-Rate des ADCs, diese gilt für alle Sensoren.

raw_frames NODE_ID CHANNEL NUM_OF_FRAMES

Fragt Sensordaten von einem Knoten an. Das ist nur zum Kalibrieren des Sensors gedacht.

  • NODE_ID Adresse des Knotens.
  • CHANNEL Sensorkanal
  • NUM_OF_FRAMES Anzahl an Frames zum Senden.

authping NODE_ID

Fragt an ob ein Knoten noch aktiv ist.

  • NODE_ID Adresse des Knotens.

Updates / Signale

Updates haben das Prefix ### um diese leicht zu parsen.

ACK<ID>-<CODE>

Eine Netzwerk-Anfrage an Knoten ID wurde bestätigt. CODE ist der ACK-Code, dieser ist Abhängig vom Request. 0 oder 128 bedeuten, dass die Anfrage erfolgreich war. Nach einem ACK kann an den Node ID der nächste Befehl gesendet werden.

ERR

Der letzte Befehl war ungültig. Es braucht nicht auf ein ACK gewartet werden.

TIMEOUT<ID>

Es ist ein Timeout aufgetreten. Es sollte deshalb bei Zeiten für diesen Knoten einen retransmit Aufruf geben. Dieser kann entweder direkt nach dem Timeout kommen oder zwischen durch kann auch noch anderes gemacht werden.

STATUS<ID>-<STATUS>

Statusupdate von Knoten ID. Status ist ein Bitfeld, ein gesetztes Bit steht für eine Aktive Maschine.

PEND<ID>

Ein PEND Signal kommt als direkte Antwort auf einen Befehl, falls ein Packet versendet wurde welches bestätigt werden muss. Daher folgt auf ein PEND immer ein ACK oder ein TIMEOUT.