5.2.20
04/07/20
Last Modified 02/17/10 by Walter Tasin
LSWProjekt_Carrera4 Reload Page

Rundenzähler

Um einen Streckenabschnitt zu testen, wird eine Visual C#-Applikation entwickelt, die zur Rundenzählung und Geschwindigkeitsermittlung der Rennfahrzeuge dient.
Grundlage dafür ist der Aufbau, wie er in der Teilaufgabe hier beschrieben wurde.

rundenz1.png

Der PC besitzt eine CAN-Buskarte CPC-PCIe/SJA 1000, die von der µC-Platine CAN-Pakete empfängt, sobald ein Fahrzeug über einen IR-Transistor fährt.

Implementierungsvorgaben

  • Da ein Rennfahrzeug die Spur innerhalb einer Runde wechseln kann, ist es wichtig die ID des Rennwages zu interpretieren.
  • Es wird das modifizierte Entwurfsmuster Publisher-Observer (unter Nutzung von Events und Delegates) verwendet,
    • wobei die Abholung der CAN-Bus-Pakete in einem eigenen Thread abläuft und diese aufbereitet
    • und dem Publisher (im GUI-Thread) übergibt,
    • der seinerseits ein Event auslöst
    • und alle darauf hörende Objekte (Observer-Objekte) führen die entsprechende Aktion aus.
  • Eine Observer-Klasse ist für die Rundenzählung zuständig, das andere für die Geschwindigkeitsmessung.

rundenz2.png

TODO

  • Verbesserungen in der Darstellung der Geschwindigkeit (Tachodarstellung wünschenswert)
  • Bedienbarkeit
    • Einstellungen sollen benutzerspezifisch gesichert werden
      • Welcher CAN-Bus-Kanal wird verwendet?
      • CAN-Buskanal soll automatisch geöffnet werden
      • Namen der Fahrzeuge und IDs sollen beim nächsten Start von den Einstellungen ausgelesen werden.
  • Hall Of Fame (optional)
  • ...