5.2.20
12/07/19

Diff for LSWProjekt_VirtualRace between 5 and 6

++ Virtual Race

+++ Beschreibung
Für die Lehrveranstaltung "Softwareentwicklung für Kfz-Steuergeräte" wird ein Programm \
in **Java** entwickelt mit dem ein Autorennen audiovisuell dargestellt wird.

* Zuerst wird die Rennstrecke anhand einer Textdatei interpretiert und dargestellt.
* Danach wird von einem Stream (Netzwerk) auf Renndaten gewartet und die Rennfahrzeuge \
entsprechend auf der Rennstrecke dargestellt.
* Die Audioausgabe wird verwendet, um den Gangwechsel und die Drehzal **eines** Fahrzeuges darzustellen. \
In einer Folgeversion, soll die Audioausgabe aus der Sicht eines Zuschauers durchgeführt werden.

[[image vrv1.png]]

+++ Implementierungsvorgaben
* Das Format der Rennstreckendaten ist vorgegeben. \
Eine Teilstrecke ist entweder ein Kurven- oder Geradenelement und wird zeilenweise in einer Textdatei abgelegt. _
Beispiel: _
<code>straight 500
circle 100 180
straight 500
circle 50 -180
straight 100
circle 25 180
straight 1100
circle 175 180
straight 1000
</code>


* Es wird das Design-Pattern **Publisher-Observer** verwendet.
* Die Renndaten existieren auch als Text-Stream und haben folgendes Format: _
//<Zeitstempel> <zurückgelegte Strecke> <Drehzahl> <Gang> <Fahrzeug-ID>// _
<code>...
0.151	0.153201	1472.25	1	CAR1
0.154	0.159375	1500.58	1	CAR1
0.157	0.165666	1528.84	1	CAR1
0.161	0.174238	1566.4	1	CAR1
0.164	0.180804	1594.47	1	CAR1
...
</code>
* Mithilfe unterschiedlicher Fahrzeug-IDs in den Renndaten sollen mehrere Fahrzeuge gleichzeitig darstellbar sein.
* Das Rennen soll offline (Renndaten als Textdatei) und online (Renndaten als Textdaten via Netzwerkverbindung) \
simuliert werden.
* Damit die Darstellung durch das Einlesen der Renndaten nicht blockiert wird, ist **Multithreading** zu verwenden.
* Die Applikation beinhaltet eine Serverfunktionalität, die Renndaten über Netzwerksockets von Clients empfängt und \
geeignet zusammenführt.

+++ Entwicklungsstatus

* Die Darstellung der Rennstrecke und des Rennens ist funktionstüchtig.
* Die Audioausgabe für ein hardcodiertes Fahrzeug funktioniert.


+++ TODO

* Renninformationen eines Fahrzeugs (Farbe des Fahrzeugs im Rennen, Geschwindigkeit des Fahrzeugs, zurückgelegte \
Strecke) in einem Fenster darstellen _
(ggf. auch an Hauptfenster andockbar).

* Serverfunktionalität

* Audioausgabe aus der Sicht eines Beobachters (Zuschauers auf einer Tribüne)

* Erweiterung und Verbesserung der Dialogboxen und Eingabemöglichkeiten. 
 * Auswahl des Fahrzeugs, dessn Motorengeräusche verwendet werden sollen
 * Auswahl, ob Online- oder Offline-Rennen
 * Infofenster der einzelnen Fahrzeuge ein- bzw. abschalten

 _

++ Interesse an diesem Projekt aktiv mitzumachen?

Melden Sie sich einfach bei 
[http://www.ee.hm.edu/fk/prof/irber/[http://ee.hm.edu/die_fakultaet/professoren/irber.de.html Prof. Dr. Irber] 
 oder 
[http://www.ee.hm.edu/fk/mita/tasin[http://ee.hm.edu/die_fakultaet/mitarbeiter/tasin.de.html Walter Tasin].