Control-plugin
Aus VDR Wiki
(Unterschied zwischen Versionen)
Hulk (Diskussion | Beiträge) K (Struktur verändert) |
Wirbel (Diskussion | Beiträge) (→Aktuelle Version) |
||
| Zeile 95: | Zeile 95: | ||
<!-- ===Wunschliste=== --> | <!-- ===Wunschliste=== --> | ||
<!-- ===Snapshot=== --> | <!-- ===Snapshot=== --> | ||
| + | |||
| + | ==Versionen== | ||
| + | * [http://ricomp.de/vdr/down_en.html 0.0.2a] | ||
==Aktuelle Version== | ==Aktuelle Version== | ||
Version vom 9. August 2013, 08:16 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.
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"
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();
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
Versionen
Aktuelle Version
Version für vdr 1.4.7 und 1.6.0 empfohlener Patch
Links
- Homepage des Plugins
- Bereinigte Version der Plugins für vdr 1.4.7 und 1.6.0