Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03214.jsonl.gz/1366

Informatik
Um die Programme, welche für den Roboter notwendig sind, besser bestimmen und nach deren Funktion einteilen zu können, wurde durch das Informatik-Sub Team zu Beginn des Projekts ein Klassendiagramm erstellt. In diesem wurden alle Klassen und deren Zusammenhang dargestellt. In diesem ersten Klassendiagramm wurden die Klassen mit deren Methoden in groben Zügen beschrieben und definiert. Da sich jedoch in den verschiedenen Stadien des Projekts wieder neue Perspektiven und dadurch neue Hürden ergaben, mussten auch die Klassen und deren Methoden angepasst werden, um die Effizienz des Programms zu gewährleisten. Auch musste das Klassendiagramm fortlaufend angepasst werden damit die Programmierer sie weiterhin als Richtlinie verwenden konnten. Dabei wurden die Klassen so gewählt, dass die Funktionen auf möglichst einfache Methoden heruntergebrochen wurden.
Die Kommunikation zwischen den Robotern erfolgt über Wlan. Um die Kommunikation zwischen dem Roboter des Partnerteams (Team 7 aus St. Gallen) und unserem möglichst Fehlerfrei zu gestalten wurde ein Kommunikationsprotokoll zwischen den Teams entworfen. Dabei musste berücksichtigt werden, dass Team 7 zwei Partnerteams hat und somit alle drei Teams mit denselben Codes arbeiten. Dazu wurde eine Befehlsstruktur gewählt, welche die Überprüfung der empfangenen Kommandos zulässt. Die Kommandos werden in Hexadezimalform dargestellt und setzen sich aus einem Längenbyte, einem Kommandobyte, einem Datenbyte und einem LRC-Byte zusammen. Eine besondere Rolle spielt dabei das LRC-Byte. LRC steht für «Longitudinal Redundancy Check», was so viel wie Längsparitätsprüfung heisst. Dieses wird aus dem Längenbyte am Anfang des Kommandos sowie dem Kommandobyte und dem Datenbyte berechnet. Sollte ein Kommando nicht vollständig gesendet oder empfangen werden, kann dies Anhand des LRC-Bytes erkannt werden und dementsprechend eine Aufforderung zum erneuten Senden des Kommandos geantwortet werden.