[dss-developer] Fragen zu Add-ons und Entwicklungsstatus für virtuelle Geräte

Michael Troß michael.tross at digitalstrom.com
Sun Oct 12 17:46:14 CEST 2014


Hallo Jan,

Am Freitag, den 03.10.2014, 11:41 +0200 schrieb MasterJani at gmx.de:
> ich prüfe gerade die Möglichkeiten, Fernseher eines bestimmten
> Herstellers zu intergieren. Prinzipiell sehe ich zwei Möglichkeiten:
> (1)    Als Add-on
> (2)    Als „virtual device“: Group video, device behavior TV Set

Die Variante (2) ist noch ziemlich neu, und bisher nur für Entwickler
nutzbar, die den dSS und die notwendigen Software Module selber bauen.
Sobald (2) als Production-Release verfügbar ist, wird das die bevorzugte
Methode sein, um Netzwerk Geräte oder Geräte mit anderen
Übertragungstechniken in das dS Daten Modell zu integrieren.

> Hierzu habe ich einige Fragen:
>  
> 1-1 Kann man den dss auf einem PC z.B. mit Linux oder Windows
> simulieren und dort sein Add-on entwickeln und testen?

Es gibt eine VM mit dem vollständigen dSS11 Setup incl. Konfigurator,
die kann man auch unter Windows einsetzen [1]. Innerhalb dieser VM
kannst du dann dein JavaScript Add-On laufen lassen. Mit dieser
Konfiguration kannst du auch auf einen "echten" dSS11 zugreifen und
reale Komponenten einbinden.

> 1-2 Kann man mit dem Möglichkeiten der „Add-on API“ einen „TCP Server
> Socket“ öffnen, 
>         um z.B. Ereignisse des Fernsehers zu verarbeiten? 
>         In der Doku („digitalSTROM Server Scripting“) ist die Klasse
> TcpSocket als deprecated klassifiziert.
>         Welche Möglichkeiten habe ich noch außer Polling?

Im Add-On Scripting gibt es keine Alternativen zum Polling, du kannst
aus der Javascript Umgebung heraus keinen Server Prozess starten und
verwalten. Die Klasse TcpSocket ist auf dem git Development Stand
bereits entfernt worden.

> 2-1  Ist die API für virtuelle Geräte bereits freigegeben, und wenn
> nicht, wann ist die Freigabe geplant?

Die Spezifikation der Schnittstelle für die "virtuellen
Geräte" (VDC-API) ist im gitorious verfügbar [2]. Wir unterscheiden
zwischen der VDC-API an sich, dort sind die Messages und Events
definiert, die zwischen VDC und dSS11-XY ausgetauscht werden, und den
VDC-API-Properties, die festlegen, welche Eigenschaften und Daten ein
VDC zur Verfügung stellen muss. Der Status der VDC-API ist sozusagen
"Release Candidate", da wird sich wohl für eine erste Version nichts
mehr ändern, bei den VDC-API-Properties ist der Status "Beta".

Die Dokumentation zu dieser Schnittstelle "Virtuelle Geräte" ist erst
noch am Entstehen, eine Beschreibung wie die Komponenten alle
zusammenhängen und wie das Konzept dahinter aussieht, ist in Arbeit.

> 2-2 Wird ein vdSM und vDC host standardmäßig auf der DSS laufen,
> sodass man ein vdSD in JavaScript entwickeln kann?

Die VDC-API ist wie gesagt bisher nur für Entwickler zu verwenden. Ob
und wie man diese später mal für eigene Implementation auf dem dSS11-XY
verwenden kann, ist noch nicht ganz klar. Die VDC Architektur erlaubt
bspw. auch, dass das Modul eines "Virtuelles Gerätes" auf einem anderen
System als dem dSS11-XY läuft und sich dann per TCP an den vorhandenen
dSS11-XY andockt.

> 2-3 Wenn 2-2 mit Nein beantwortet wird, welche Komponenten müsste ich
> selbst entwickeln, damit ein virtuell device der Gruppe Video auf der
> DSS  läuft? Dieses vdSD würde den Fernseher via TCP/IP einbinden. 

Am besten basiert ein VDSD auf unserer libdsvdc [3]. Damit bekommst du
schon mal den vollständigen Support der VDC-API geschenkt und kannst
dich mit deiner Implementation ganz auf die Eigenschaften deines
spezifische Gerätes konzentrieren. Eine Referenzimplementation ist in
der libdsvdc enthalten, siehe unter ./examples/reference.c. Ein weiteres
Beispiel für einen VDC findest du auf meinem github Account [4].

Die Doku ist halt leider noch nicht so wirklich verfügbar, und
sicherlich bleiben daher noch einige Fragen offen. Du bist aber hier auf
der ML genau richtig, damit du mit deinem VDC Projekt weiterkommst.
Neben den dS Entwicklern gibt es gibt auch ein Partnerunternehmen, das
von Anfang an an der Entwicklung der VDC-API aktiv beteiligt war, und
auf Basis der VDC-API ein eigenes Produkt entwickelt hat, also es gibt
bereits einige VDC Praxiserfahrung hier auf der ML. Und falls es Ende
des Jahres wieder einen Developer-Day in Schlieren gibt, solltest du
diese Gelegenheit nutzen und direkten Kontakt zu den dS Entwicklern
aufnehmen.

Grüße
Michael


[1]
http://update.aizo.com/feeds/dss11-devel-eglibc/images/qemux86/Angstrom-dss11-devel-image-eglibc-ipk-v2013.11-core-qemux86.vmdk

[2]
https://gitorious.digitalstrom.org/virtual-devices/vdcd/trees/master/docs

[3] https://gitorious.digitalstrom.org/virtual-devices/libdsvdc

[4] https://github.com/mtrx/dsvdc/tree/master/src




More information about the dss-developer mailing list