Skip to main content

FieldNet - Philosophie

Das Field-Network ist ein Protokoll/ eine Definition, das Quelloffen aufgebaut ist und für alle Geräte auf dem Wettkampffeld verwendet werden kann. Als Grundlage der Übertragung dient ein TCP/IP Netz auf dem Informationen via HTTP übermittelt werden. Einzelne Anwendungen haben innerhalb des FieldNet unterschiedliche URL Endpunkte welche Anwenderabhängig definiert werden. Durch die Quelloffenheit und die definierten Schnittstellen können somit verschiedene Projekte gemischt und Anwendungen verwendet werden. Als Beispiel kann durch die Definierte Schnittstelle und Übertragungstechnik jede Auswertesoftware, die sich an die Definitionen innerhalb des FieldNet hält, jede Art von Anzeigesoftware oder Eingabehardware (Terminals) beliefern und Informationen abholen. Durch TCP/IP und den HTTP Standard ist es möglich mit “Massenware”, die oft Erprobt und in jedem IT Laden erworben werden kann, schnell und kostengünstig das FieldNet aufzubauen.

Durch die Offenheit der Definition können auch Konverter gebaut werden. Somit kann z.B. das Signal einer Ampelsteuerung in die Definition einer Ampel für das Field-Network gewandelt werden und dann an sämtlichen, an den Standard haltenden, Anzeigen ausgegeben werden. Natürlich müssen sich die Anzeigen nicht zwingend an den Standard halte. Auch hier kann wieder konvertiert werden.

URL Endpunkte im Field-Network definiert

Jedes Gerät im FieldNet, welches angesprochen werden kann/muss hört auf den Endpunkt /discover. Dieser Endpunkt dient zur automatischen suche nach geräten für andere Geräte, welche Daten an andere Verteilen. z.B. sollte eine Ampelsteuerung sich bei /discover melden, da eine Fernbedienung das Netz via /discover absucht um die Steuerung zu finden und hierüber dann Befehle abzuschicken.
Auf den Endpunkt /discover kann verzichtet werden, wenn das Gerät/die Anwendung im Netzwerk nicht gefunden werden muss/soll. Eine Fernbedienung muss z.B. nicht gefunden werden, da diese nur Informationen zur Steuerung übergibt.

Als Antwort unterhalb dieses Endpunktes wird ein JSON Note zurückgegeben, welches wie folgt aufgebaut ist:

JSON Beispiel:

{ 
  'app': 'amp', 
  'type': 'cont', 
  'vers': 2, 
  'extra': { 
    'url_left_amp': 'http://ip.des.controllers/amp_left', 
    'url_right_amp': 'http://ip.des.controllers/amp_right', 
    'url_double_amp': 'http://ip.des.controllers/amp_doubl', 
  } 
}

Schema:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "app": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "vers": {
      "type": "integer"
    },
    "extra": {
      "type": "object",
      "properties": {
        "url_left_amp": {
          "type": "string"
        },
        "url_right_amp": {
          "type": "string"
        },
        "url_double_amp": {
          "type": "string"
        }
      },
      "required": [
        "url_left_amp",
        "url_right_amp",
        "url_double_amp"
      ]
    }
  },
  "required": [
    "app",
    "type",
    "vers",
    "extra"
  ]
}

Key

Beschreibung

app

App gibt an, zu welcher Anwendung das Gerät gehört. Ampel, Trefferanzeige, Treffereingabe, Auswertung, etc.

type

Gibt die Unterkategorie innerhalb der Anwendung an. Dies dient dazu, dass auch innerhalb einer Anwendung verschiedene Geräte aufgeführt werden können. Zum Beispiel gibt es bei einer Ampel verschiedene Geräte mit unterschiedlichen Funktionen. Eine Steuerung benötigt keine Daten muss ihre Daten aber an die Anzeigeelemente versenden können

vers

Mit der Versionsnummer kann angegeben werden, welche Funktionen das Gerät akzeptieren kann. Jede Anwendung und jedes Protokoll entwickelt sich weiter und es kommen neue Funktionen hinzu. Es ist dringlich darauf zu achten, dass die Versionen abwärtskompatibel sind!

extra

In extra können via Unterknotenpunkte anwendungsabhängig weitere Informationen bereitgestellt werden. So kann z.B. auf eine URL Verwiesen werden die Einen Status bereitstellt.

Bekannte Apps:

Key

Applikation

Beschreibung/Definition

Details

amp

Ampel

Daten zum Steuern von Ampelelementen auf einem Wettkampffeld