Syntax-Prüfer

Um Nachrichten auf Korrektheit zur prüfen, bevor sie an das Mutterschiff gesendet werden, kann ein spezieller MQTT-Kanal genutzt werden.
Der Server überprüft die einzelnen Felder auf Korrektheit und gibt an, ob die Nachricht unvollständig ist oder zu viele Felder enthält.
Dieser Kanal eignet sich auch für die Erstellung von Unit-Tests für die Kommunikation (Positiv- und Negativ-Tests), wenn man kein vollständiges Szenario abbilden möchte.

Info

Der Syntax-Prüfer ist nur für Testzwecke gedacht, um beispielsweise die Communication implementieren und testen zu können, bevor der Roboter fährt.

Es werden die Nachrichten-Typen ready, path, pathSelect, targetReached, explorationCompleted, testPlanet akzeptiert.

  • Subscribe to comtest/<GROUP>
  • Publish message:

(1) Publish to comtest/<GROUP>

{
  "from": "client",
  "type": "ready"
}

Ist die Syntax in Ordnung, wird die Antwort (1) vom Server verschickt, ansonsten Antwort (2) mit gefundenen Fehlern und Korrekturvorschlägen.

(1) Receive on comtest/<GROUP> (Valid)

{
  "from": "debug",
  "type": "syntax",
  "payload": {
    "message": "Correct"
  }
}

(2) Receive on comtest/<GROUP> (Invalid)

{
  "from": "debug",
  "type": "syntax",
  "payload": {
    "message": "Incorrect",
    "errors": [
      "Invalid field: <FIELDNAME>",
      "Missing field: <FIELDNAME>",
      "Unknow from: <VALUE>",
      "Unknow type: <VALUE>",
    ]
  }
}