Control-plugin
Aus VDR Wiki
(Unterschied zwischen Versionen)
Wirbel (Diskussion | Beiträge) (→Aktuelle Version(en)) |
|||
Zeile 9: | Zeile 9: | ||
*[http://www.u32.de/vdr.html#control Bereinigte Version der Plugins] für vdr 1.4.7 und 1.6.0 | *[http://www.u32.de/vdr.html#control Bereinigte Version der Plugins] für vdr 1.4.7 und 1.6.0 | ||
+ | ==Patch gegen Absturz beim Beenden des VDR== | ||
+ | [[http://www.vdr-portal.de/board1-news/board101-news-archiv/114203-vdr-control-ohne-absturz-beenden Link]] | ||
+ | |||
+ | <pre>diff -Nru control-0.0.2a-kw3/control.c control-0.0.2a-kw3_0/control.c | ||
+ | --- control-0.0.2a-kw3/control.c 2008-09-26 16:19:29.000000000 +0200 | ||
+ | +++ control-0.0.2a-kw3_0/control.c 2012-08-04 12:17:08.000000000 +0200 | ||
+ | @@ -32,6 +32,7 @@ | ||
+ | class cPluginControl : public cPlugin { | ||
+ | private: | ||
+ | // Add any member variables or functions you may need here. | ||
+ | + cCtrlState* _pState; | ||
+ | cCtrlGateways* _pReceivers; | ||
+ | cCtrlGateway* _pTerminal; | ||
+ | |||
+ | @@ -67,6 +68,7 @@ | ||
+ | cPluginControl::~cPluginControl() | ||
+ | { | ||
+ | // Clean up after yourself! | ||
+ | + delete(_pState); | ||
+ | delete(_pReceivers); | ||
+ | delete(_pTerminal); | ||
+ | } | ||
+ | @@ -120,7 +122,7 @@ | ||
+ | // Start any background activities the plugin shall perform. | ||
+ | |||
+ | if (glParPort || glParTerminal && *glParTerminal) | ||
+ | - new cCtrlState(); | ||
+ | + _pState = new cCtrlState(); | ||
+ | |||
+ | if (glParPort) { | ||
+ | _pReceivers = new cCtrlGateways(); | ||
+ | </pre> | ||
==Bilder== | ==Bilder== |
Version vom 3. August 2013, 12:01 Uhr
Inhaltsverzeichnis |
Beschreibung
Autor: Jan Rieger
Stellt das OSD in einer Telnet-Session dar. Damit kann der VDR von jedem telnet-fähigen Rechner aus ferngesteuert werden.
Aktuelle Version(en)
- Bereinigte Version der Plugins für vdr 1.4.7 und 1.6.0
Patch gegen Absturz beim Beenden des VDR
[Link]
diff -Nru control-0.0.2a-kw3/control.c control-0.0.2a-kw3_0/control.c --- control-0.0.2a-kw3/control.c 2008-09-26 16:19:29.000000000 +0200 +++ control-0.0.2a-kw3_0/control.c 2012-08-04 12:17:08.000000000 +0200 @@ -32,6 +32,7 @@ class cPluginControl : public cPlugin { private: // Add any member variables or functions you may need here. + cCtrlState* _pState; cCtrlGateways* _pReceivers; cCtrlGateway* _pTerminal; @@ -67,6 +68,7 @@ cPluginControl::~cPluginControl() { // Clean up after yourself! + delete(_pState); delete(_pReceivers); delete(_pTerminal); } @@ -120,7 +122,7 @@ // Start any background activities the plugin shall perform. if (glParPort || glParTerminal && *glParTerminal) - new cCtrlState(); + _pState = new cCtrlState(); if (glParPort) { _pReceivers = new cCtrlGateways();
Bilder
Softwareanforderungen
- telnet (Aufruf z. B.: telnet localhost 2002) oder jedes andere telnet-fähige Programm, z. B. PuTTY.
Installation
Das Kompilieren und Installieren erfolgt auf den üblichen Weg der Plugin Installation.
Patches
- vdr >= 1.3.18
Konfiguration
svdrphosts.conf
Es muss noch in der Datei $VDRCONFIG/svdrphosts.conf der Rechner oder das Subnetz freigeschaltet werden, von dem aus die Telnet-Session eröffnet werden soll, z. B. durch Einfügen von 192.168.0.76 für einen Rechner mit dieser IP. Andernfalls erscheint lediglich die Meldung "access denied" im Telnet-Client.
Parameter
Parameter (kurz) | Parameter (lang) | Beschreibung |
---|---|---|
-t <TTY> | --terminal=<TTY> | VDR über ein virtuelles Terminal steuern (Standard: keins) |
-p <PORT> | --port=<PORT> | TCP-Port auf dem die Verbindungen ankommen sollen (Standard: 2002) |
Sonstiges
Probleme
- Speicherzugriffsfehler beim Beenden einer Session
- Beendet man die Sitzung per Ctrl+C, stürzt VDR nach der nächsten OSD-Aktion mit einem Speicherzugriffsfehler ab (weil ein Thread hart beendet wurde, und bei der nächsten OSD-Aktion wird ein nicht mehr existierendes Objekt aufgerufen).
- Beendet man die Sitzung hart durch Beenden des Telnet-Programms, bleibt die Verbindung formal bestehen, es kommt also 'nur' zu einer Endlosschleife, so daß die CPU-Last des zugehörigen VDR-Prozesses auf knapp 100% ansteigt.
- Siehe Sauberes Beenden einer "Control-plugin"-Telnet-Session ?. Eine von diesen Problemen bereinigte Pluginversion findet sich unten unter "Links"
Tipps
- Zugriff mit PuTTY
- Beim Zugriff auf die Konsole mittels PuTTY muss beachtet werden, dass die Funktionstasten im Linux-Format gesendet werden. Die benötigten Einstellungen finden sich im Konfigurationsdialog der Verbindung unter Terminal -> Keyboard und dort "The Function keys and keypad" auf "Linux" stellen.
- Wenn man normale Kommandos von einer Shell aus (also ohne SVDRP) an den vdr senden will, kann man cat > /proc/`pidof vdr`/fd/0 verwenden. Siehe auch Artikel im englischen VDRWiki
Links
- Homepage des Plugins
- Bereinigte Version der Plugins für vdr 1.4.7 und 1.6.0