Übertragen des Spurpolynoms

Aus HSHL Mechatronik
Version vom 5. Februar 2020, 20:48 Uhr von Luca Di-Lillo (Diskussion | Beiträge) (Programmierung hinzugefügt)
Zur Navigation springen Zur Suche springen

Autor: Luca Di Lillo
Betreuer: Prof. Schneider

Einleitung

Dieser Artikel beschreibt den Sendevorgang des ermittelten Spurpolynoms aus der C++ Anwendung, über RS232 an die dSpace DS1104 Hardware. Wichtig ist dass hier nur die Koeffizienten des Polynoms gesendet werden, andere Daten, wie Stopplinien werden aktuell nicht erkannt und somit auch nicht gesendet. Diese Funktion muss in Zukunft implementiert werden.

Softwareentwurf

Die Funktion zum Senden des Spurpolynoms wurde vor der Programmierung in Form eines PAP erstellt.

Abb. 1: Sendevorgang des Spurpolynoms

Programmierung

Die Programmierung erfolgte in C++ mit Visual Studio 2010 Professional. Die Funktion ist Bestandteil der Library RS232Comm.cpp.
Als Eingangsvariablen erhält die Funktion die Koeffizienten a,b und c des Spurpolynoms. Um der Empfangsseite das Senden von Daten anzukündigen wird dann ein Startbyte gesendet. Damit der Empfänger entsprechend reagieren kann, wird das Programm kurz pausiert.
Im nächsten Schritt wird der erste Koeffizient des Polynoms gesendet. Jeder Koeffizient entspricht dem Datentyp float der vier Byte groß ist. Über die RS232 Schnittstelle kann jedoch immer nur ein Byte gesendet werden. Daher wird mit einem Zeiger auf jedes Byte des Koeffizienten nacheinander zugegriffen und gesendet. Wichtig an dieser Stelle ist, dass der Rechner mit der C++ Anwendung nach der Little-Enzian Byteordnung arbeitet und die dSpace Karte nach der Big-Endian Byteordnung. Daher wird beim Senden die Byteordnung geändert und zuerst das höhenwertige Byte (MSB) gesendet. Nachdem alle vier Bytes versendet wurden, wird der nächste Koeffizient des Polynoms gesendet.
Um dem Empfänger das Ende der Übertragung anzuzeigen wird ein Endbyte gesendet.

Komponententest

Zusammenfassung

Link zum Quelltext in SVN