Übertragen des Spurpolynoms: Unterschied zwischen den Versionen
(Comport hinzugefügt) |
(Link hinzugefügt) |
||
Zeile 4: | Zeile 4: | ||
== Einleitung == | == Einleitung == | ||
Dieser Artikel beschreibt den Sendevorgang des ermittelten Spurpolynoms aus der C++ Anwendung, über [https://de.wikipedia.org/wiki/RS-232 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. | Dieser Artikel beschreibt den Sendevorgang des ermittelten Spurpolynoms aus der C++ Anwendung, über [https://de.wikipedia.org/wiki/RS-232 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. Der Umgang mit den Daten auf der Empfangsseite wird im Artikel [https://wiki.hshl.de/wiki/index.php/Fahrzeugkommunikation_via_RS232m Fahrzeugkommunikation via RS232] beschrieben. | ||
== Softwareentwurf == | == Softwareentwurf == |
Version vom 7. Februar 2020, 17:41 Uhr
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. Der Umgang mit den Daten auf der Empfangsseite wird im Artikel Fahrzeugkommunikation via RS232 beschrieben.
Softwareentwurf
Die Funktion zum Senden des Spurpolynoms wurde vor der Programmierung in Form eines PAP erstellt.
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.
Wichtige Anmerkung: Der Comport wird in dem Header all_needed.h in Zeile 80 eingestellt.
- Comport 1 bei Laborrechner zu dSpace Karte im Rechner
- Comport 2 bei Fahrzeug zu dSpace Karte auf dem Fahrzeug
Komponententest
Da es sich bei dieser Entwicklung um die einer einzelnen Komponente handelt, schließt der Komponententest mit dem Testbericht die Entwicklung ab.
Der Komponententest erfolgt zusammen mit dem Programm auf der dSpace Karte, dass die gesendeten Daten empfangen soll.
Testfall | Testfallbeschreibung | Eingänge a,b und c | Erwartetes Ergebnis beim Empfänger | Testergebnis | Testperson | Datum |
---|---|---|---|---|---|---|
1 | Ein allgemeines Spurpolynom wird gesendet, Verhalten des Statusbit wird überprüft. | zufällige Koeffizienten, ermittelt aus der Spur. | Empfang von Daten: Statusbit wechselt auf 0. | OK | Yanick Christian Tchenko | 03.01.2020 |
2 | Ein allgemeines Spurpolynom wird gesendet, Empfang der richtigen Daten wird überprüft. | -3.824300e-6, -0.06431, 63.064310 | -3.824300e-6, -0.06431, 63.064310 | OK | Yanick Christian Tchenko | 03.01.2020 |
3 | Startbyte wird als gesamtes Polynom gesendet. | 2.86331e9, 2.86331e9, 2.86331e9 (entspricht Startbyte als float) | 2.86331e9, 2.86331e9, 2.86331e9 | OK | Yanick Christian Tchenko | 03.01.2020 |
4 | Stoppbyte wird als gesamtes Polynom gesendet. | 1.79662e8, 1.79662e8, 1.79662e8 (entspricht Stoppbyte als float) | 1.79662e8, 1.79662e8, 1.79662e8 | OK | Yanick Christian Tchenko | 03.01.2020 |
5 | Senden von Null. | 0, 0, 0 | 0, 0, 0 | OK | Yanick Christian Tchenko | 03.01.2020 |
Zusammenfassung
Das Übertragen des Spurpolynoms wurde gemäß des Softwareentwurfs durchgeführt und zusammen mit der Software auf der dSpace Karte getestet. Werden im weiteren Verlauf noch weitere Funktionen der Objekt- und Spurerkennung implementiert, muss eine anderen Funktion der Library RS232Comm.cpp verwendet werden. Diese Funktion sendet lediglich das Spurpolynom das für eine einfach Fahrt auf der Rundstrecke nötig ist.
Link zum Quelltext und zum Komponententest in SVN
RS232Comm.cpp
Komponententest RS232
Zurück zum Hauptartikel:
OSE - Objekt - und Spurerkennung