Kraftfahrzeug-Fernsehen
Entwicklung eines Presentation-Controllers für einen Fernsehempfänger in einem Personenkraftwagen
Analyse in Franca IDL, Schnittstellenverhandlungen, Entwurf in UML, Komponentendefinition in MoCCA, Programmierung in C++, Test mit SOME/IP, Koordination
Das Gesamtsystem ist im Projekt Fernseh-Datendienste beschrieben.
Ich entwickelte die Präsentations-Schicht für einen der beiden Kraftfahrzeughersteller. Die Middleware dieses Herstellers ist SOME/IP.
Der Presentation-Controller deckt alle Funktionen des Fernsehens ab, z.B. Senderlisten, Programmwahl, EPG und die im Projekt Fernsehdatendienste beschriebenen Datendienste. Der Empfänger bringt eine große Menge multimedialen Inhalts. Das Grundmuster des Presentation-Controllers ist es, der Benutzerin eine Übersicht über diesen Inhalt zu geben und von ihr zu erfahren, welcher Inhalt auf den Bildschirm bzw. die Lautsprecher soll.
Es gibt Varianten für DVB-T2 (Europa), ISDB -T (Japan) und DMB (Korea). Ein Ziel des Entwurfs war es, möglichst wenig variantenspezifischen Programmtext zu haben. In der Klassenhierarchie ist Variantenspezifisches in Subklassen platziert, die minimal sind in dem Sinne, dass sie nur das Variantenspezifische enthalten. Beim Hochfahren werden anhand der Variantencodierung, wo nötig, Objekte der variantenspezifischen Subklassen in das Gesamtobjektnetz eingekoppelt. Es gibt keine Variantenunterscheidung im laufenden Betrieb und keine bedingte Übersetzung.
Das Fernseh-Subsystem war eine Neuentwicklung. Der Zulieferer hatte vorher kein digitales TV im Angebot.
Ich entwarf den Presentation-Controller als UML-Modell mit Klassen- und Kollaborationsdiagrammen. Das Werkzeug war MagicDraw. Ich programmierte den zentralen Teil in C++. Teletext, Untertitel, EPG, EWS und Conditional Access implementierten zwei Mitarbeiter anhand meines UML-Modells und sie verfeinerten dieses mit Sequenzdiagrammen. Getestet wurde mit einer SOME/IP-Simulation und mit einem MoCCA-Klienten vom PC aus. Video und Audio wurden auch an den PC übermittelt und dort mit VLC dargestellt.
-
Schnittstelle zur Benutzerkommunikation
Die SOME/IP-Schnittstelle zur Benutzerkommunikation war vom Kraftfahrzeughersteller vorgegeben und in Franca IDL beschrieben. Ich verhandelte mit ihm über Erweiterungen und um Relikte des Analogfernsehens zu entfernen.
-
Senderliste
Die Benutzerkommunikation benötigt verschiedene Arten von Senderlisten und zwar alle empfangbaren Fernsehprogramme, Presets, Stationstasten, und häufig geschaute Programme (Top Ten). Sie benötigt auch verschiedene Sortierungen und Ausschnitte und verschiedene Bestückungen, z.B. mit oder ohne Senderlogos oder EPG.
Intern ist eine einzige Senderliste gespeichert, d.h. jedes Fernsehprogramm kommt genau einmal in der Datenbasis vor. In diesem einen Datensatz sind alle Informationen über es. Wenn ein Programm beispielsweise auf einer Stationstaste liegt, ist deren Nummer im Datensatz abgelegt. Der Presentation-Controller liefert die jeweilige Senderliste für die Benutzerkommunikation als Auszug (View) aus der Datenbasis. Es gibt also keine doppelte Datenhaltung und damit keinen Programmtext, der eine solche konsistent halten müsste.
Bei einem mobilen Broadcast-Empfänger ändert sich der empfangene Inhalt ständig. Die Steuerungs-Softwareschicht meldet Veränderung an den Presentation-Controller, der daraufhin seine interne Datenbasis aktualisiert und die betroffenen Views neu an die Benutzerkommunikation schickt.
Der Presentation-Controller gibt dem Benutzer die Möglichkeit Presets und Stationstasten zu speichern und führt die Top-Ten-Liste anhand seines Zeitverhaltens.
-
Teletext
Der Teletext ist mehrbenutzerfähig. Verschiedene Bildschirme müssen mit verschiedenem Inhalt beschickt werden. Dafür bietet der Presentation-Controller ein Session-Konzept. Der automatische Unterseitenwechsel wird von ihm dargestellt.
-
Conditional Access und Browser
Der BML-Browser wird auch für die Benutzerkommunikation des Zusatzgeräts für Pay-TV benutzt. Der Presentation-Controller steuert ob und wann diese oder empfangener Inhalt aufgelegt wird. Anforderungen dazu können aus allen Richtungen kommen, d.h. von der Benutzerin, vom Zusatzgerät, oder von der Steuerungs-Softwareschicht, wenn BML-Autostartinhalt hereinkommt.