VCR.NET 4.1 – Automatische Auswahl des Gerätes für eine Aufzeichnung

Auch in VCR.NET 4.1 werden Aufzeichnungen erst einmal wie bisher angelegt. Insbesondere erfolgt immer erst die Auswahl eines Geräteprofils und dann über dieses eine Quelle (ein Sender), die von diesem Gerät auch tatsächlich angesteuert werden kann. Die Aufzeichnung bezieht sich dann auf diese Quelle.

VCR.NET 4.1 wird aller Voraussicht nach die Option bieten, eine Gerät für die Aufzeichnung automatisch auswählen zu lassen. Dabei werden natürlich nur Geräte berücksichtigt, die von der ausgewählten Quelle (dem Sender) auch Daten entgegennehmen können. Hier wird es in VCR.NET 4.1 definitiv noch Einschränkungen geben, aber zumindest folgendes Szenario soll unterstützt werden: sind in einem Rechner mehrere gleichartige DVB Geräte installiert (etwa zwei oder mehr DVB-S(2) Empfänger), so ist im Allgemeinen eines davon für die Bereitstellung der Quellen (Sender) konfiguriert. Alle anderen nutzen diese Information dann einfach mit. Für diesen Fall ist es letztlich egal, über welches Gerät eine Aufzeichnung erfolgt und VCR.NET kann bei Kollisionen eventuelle freie Ressourcen nutzen. Dies kann in einigen Situationen die Programmierung von Aufzeichnungen vereinfachen.

In einem DVB.NET Geräteprofil ist es möglich, jedem Gerät eine Priorität für die Nutzung durch den VCR.NET Recording Service zuzuordnen. Diese wird dann bei der Zuordnung von Aufzeichnungen auf geeignet verwendet. Obwohl ich mir wünsche, dass die Pflege dieser Priorität in der Web Oberfläche von VCR.NET angeboten wird kann es sein, dass das erst in 4.2 implementiert wird. Das gilt dann auch für die Freischaltung der Entschlüsselung – aber in beiden Fällen handelt es sich um einmalige Einstellungen, deren Integration in die Web Oberfläche sicher nicht die höchste Priorität haben.

VCR.NET 4.1 – Neuer Web Client

Ich beabsichtige, zumindest Teile der bestehenden ASP.NET WebForms basierten Web Oberfläche von VCR.NET durch einen etwas interaktiveren Ansatz zu ersetzen. Ich befinde mich hier allerdings in einer sehr frühen Experimentierphase und möchte mich daher nicht zu weit aus dem Fenstern lehnen. Geplant ist der Einsatz von HTML und JavaScript, wobei nach Möglichkeit keine umfangreichen JavaScript Bibliotheken und Frameworks zum Einsatz kommen sollen – gesetzt ist hier bisher nur jQuery, mal schauen, wie weit man damit so kommt. Eine wichtige Rolle wird dabei dann auch die Umstellung der bisherigen SOAP Web Services auf eine geeignetere Technologie spielen.

Das Hauptziel für 4.1 ist es, den existierenden ASP.NET Web Client durch eine HTML / JavaScript basierte Variante zu ersetzen. Insbesondere werde ich dabei versuchen die aktuelle Bedienung so wenig wie möglich (aber so viel wie nötig) zu ändern. Das heißt unter anderem, dass zum Beispiel das Formular zum Anlegen neuer Aufzeichnungen erst einmal nicht viel anders aussehen wird als in früheren Versionen – mit der Hoffnung, dass es sich aber irgendwie besser anfühlt und weniger Server Round-Trips benötigt. Sollte das gelingen, so ist die 4.1 eigentlich fertig. Erst in der Folgeversion werde ich mich dann mit den Möglichkeiten der neuen Web Client Technologie weiter auseinandersetzen, wobei dann vielleicht auch neue (bessere) Konzepte für die Bedienung herausspringen.

Man beachte, dass es sich hier immer um frühe Studien zur reinen Funktionalität handelt. Das Layout / Styling wird als aller Letztes gemacht. Ich denke aber, dass man auch so in den meisten Fällen sehr gut sehen kann, in welche Richtung es geht – auch wenn vieles noch recht hässlich aussieht.

Bisher gibt es hierzu folgende Artikel:

Die erste Phase der Umstellung des Web Clients ist damit abgeschlossen. Offen sind in diesem Moment noch die Hilfeseiten (FAQ) sowie die optische und technische (immerhin mein erstes HTML/JavaScript Projekt) Aufbereitung der aktuellen Codebasis des Clients. Es wird keine weiteren Artikel zu diesem Eintrag geben.

VCR.NET 4.1 – Neue Web Dienste

Es ist geplant, alle SOAP Web Dienste von VCR.NET zu erneuern. Dabei soll auf die bisherige ASP.NET ASMX basierte Technologie verzichtet und vielmehr eine leichtgewichtigere REST basierte Lösung eingesetzt werden. Ob dies in vollem Umfang gelingen wird, ist noch unklar. Zumindest möchte ich diese Gelegenheit nutzen, die schon erfolgten Umstellungen kurz vorzustellen.

In der Übergangsphase zu VCR.NET 4.1 wird es nicht oder nur eingeschränkt möglich sein, alte Werkzeuge wie das VCR.NET Kontrollzentrum gegen einen neuen Server zu betreiben. Ich hoffe, dass sich die Unannehmlichkeiten in Grenzen halten werden.

Im Einzelnen geht es dabei um:

Die Entwicklung der neuen REST basierten Web Dienste für die Version 4.1 des VCR.NET Recording Service ist hiermit abgeschlossen – Anpassungen und Fehlerbehebung in der nun folgenden Testphase natürlich ausgenommen. Die bisherigen auf dem SOAP Protokoll basierenden und in ASP.NET Technologie entwickelten Web Dienste wurden vollständig abgeschaltet. Es wird auch keine weiteren Artikel zu diesem Eintrag mehr geben.

VCR.NET 4.1 – Zapping / LIVE Modus

Ist ein von VCR.NET verwaltetes DVB Gerät gerade nicht in Benutzung (durch eine Aufzeichnung oder eine Aktualisierung der Programmzeitschrift respektive der Liste der Quellen), so erlaubt es der VCR.NET Recording Services, dieses zu aktivieren und fernzusteuern. In dieser LIVE oder Zapping genannten Betriebsart können dann die Nutzdaten (Bild, Ton, Videotext) einer Quelle (eines Senders) an eine TCP/IP UDP Empfängeradresse geschickt werden. Programme wie der DVB.NET / VCR.NET Viewer oder VLC können diese Daten dann empfangen und anzeigen. Im Viewer ist sogar diese Fernsteuerung vollständig integriert.

In früheren Versionen hat VCR.NET zwei SOAP Web Services auf Basis der ASP.NET ASMX Technologie angeboten, mit denen die Fernsteuerung erfolgte. Diese wurden aus VCR.NET 4.1 vollständig entfernt und durch einen deutlich vereinfachten REST basierten Web Service ersetzt, der sich auf die wesentlichen Anforderungen beschränkt. Dieser wird über die (relative) Uri VCR.NET/Zapping/GERÄT angesprochen, wobei GERÄT der Name des zu verwendenden Geräteprofils ist – natürlich als Teil einer Uri geeignet vorbereitet, e.g. durch Ersetzen von Leerzeichen durch %20 wie üblich.

Der Web Service bietet folgende Methoden an:

  • GET ohne Parameter: meldet, ob der LIVE Modus aktiv ist und wenn ja, welche Quelle gewählt wurde und wohin die Nutzdaten versendet werden.
  • GET mit Filterparametern: ermittelt die vom gerät angebotenen Quellen, auf Wunsch eingeschränkt auf Fernseh- oder Radiosender.
  • POST: aktiviert den LIVE Modus auf dem Gerät, als Parameter wird in der Uri die TCP/IP Empfängeradresse mitgegeben.
  • DELETE: deaktiviert den LIVE Modus auf dem Gerät.
  • PUT: wählt über einen Parameter die Quelle (den Sender), dessen Nutzdaten zu versenden sind.

In der Antwort melden sämtliche Aufrufe den jeweils aktuellen Zustand des Gerätes, äquivalent zu einem GET ohne Parameter.

Die veränderte Schnittstelle bedeutet natürlich nicht, dass sich das Verhalten des LIVE Modus verändert hat. Der LIVE Modus kann nicht aktiviert werden, wenn eine Aufzeichnung oder Aktualisierung bereits auf dem Gerät aktiv ist. Darüber hinaus wird der LIVE Modus sofort beendet, wenn eine neue Aufzeichnung oder Aktualisierung für das Gerät ansteht.

VCR.NET 4.1 – Ein Blick in die Werkstatt

Die VCR.NET 4.1 Entwicklung schreitet wenn auch langsam so doch relativ stetig voran. Ich werde hier in der nächsten Zeit einige der bereits realisierten Änderungen vorstellen.

Aktuelle Artikel:

In Kürze wird es vermutlich auch eine erste öffentliche Testversion geben – wohl wissend, dass bei weitem noch nicht alle Bereiche auf die neuen Technologien umgestellt sind. Ich habe bei mir eine Version in Betrieb genommen, in der sowohl der neue Aufzeichnungsplan als auch das Formular für die Daten von Aufzeichnung und Auftrag zumindest funktional dem Zielbild von VCR.NET 4.1 entsprechend. Durch eigene Enttäuschungen geprägt hier schon einmal ein wichtiger Hinweis für die Testphase: da der Web Client nun intensiv mit JavaScript arbeitet macht es nach einer Installation Sinn, den Browser Cache zu löschen, bevor man den VCR.NET Web Client aufruft. Ansonsten können sehr eigenartige Dinge passieren.