Serial-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Funktionen der LED´s)
(Softwareanforderungen)
 
(18 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
 
'''Autor:''' Ralf Klueber
 
'''Autor:''' Ralf Klueber
  
Mit dem Plugin lässt sich der VDR über Tasten steuern, die an die serielle Schnittstelle angeschlossen sind. Zusätzlich lassen sich ein Paar Leuchtdioden ansteuern.
+
Mit diesem Plugin lässt sich der [[VDR]] über Hardware-Tasten steuern, die an die serielle Schnittstelle angeschlossen sind. Zusätzlich lassen sich eine oder zwei Leuchtdioden ansteuern.
 +
 
 +
Für die Nutzung des Paralleports gibt es dieses Plugin:
 +
[http://www.vdrportal.de/board/thread.php?postid=537197 Parout-Plugin]
  
 
<!-- ===Status=== -->
 
<!-- ===Status=== -->
Zeile 18: Zeile 21:
  
 
====Funktionen der LED´s====
 
====Funktionen der LED´s====
 +
LED1 = Status plugin geladen
  
LED 1 leuchtet bei Aufnahmen und blinkt, wenn keine TV-Karte mehr "frei" ist.
+
LED2 = Status Aufnahme  
Bsp: System mit nur einer TV-Karte: Hier würde die LED blinken, da die eine vorhandene Karte für die Aufnahme gebraucht wird. System mit zwei TV-Karten: Hier würde die LED bei einer Aufnahme leuchten, da die 2. Karte noch "frei" ist. Wenn eine 2. Aufnahme gestartet wird, würde die LED wieder blinken. Usw.
+
  
Die teilweise Bestückung ist auch möglich, wenn z. B. nur die ersten 5 Taster benötigt werden oder nur 1 LED. Es geht auch ganz ohne LED.
+
Die zweite {{wikipedia|LED}} leuchtet bei einer aktiven Aufnahme und blinkt, wenn keine TV-Karte mehr frei für weitere Aufnahmen ist. Bei Systemen mit nur einer TV-Karte würde die LED bei aktiver Aufnahme immer blinken, da die eine vorhandene Karte für die Aufnahme gebraucht wird. Bei Systemen mit zwei TV-Karten würde die LED bei einer Aufnahme leuchten, da die zweite Karte noch "frei" ist, sie beginnt erst zu blinken, wenn auch die zweite Karte durch eine Aufnahme im Einsatz ist.
Ein Vorwiderstand wird i. d. R. nicht benötigt für die LEDs (z. B. die HDD-LED des Gehäuses) da der serielle Port eine Konstantstromquelle ist mit 10-20 mA, aber aus Helligkeitsgründen empfiehlt sich ein 1 kOhm-Vorwiderstand bei normalen Anzeige-LEDs (rot, gelb, grün).
+
Für nicht so versierte Bastler hier noch ein Link zur Beschaltung der LEDs: [http://de.wikipedia.org/wiki/Led Wikipedia: LED].
+
  
Ein evtl. Prellen der Tasten ist durch Parallelschalten eines Kondensators mit etwa 1 nF zu jedem Taster zu beheben (Tiefpass). v0.0.6b soll dies auch beheben (Link s.u.)...
+
Ein kompletter Hardwareausbau ist nicht immer erforderlich und kann den persönlichen Ansprüchen und Erfordernissen angepasst werden. Damit ist eine teilweise Bestückung möglich, so können nur Taster oder nur die Anzeige per LED verwendet werden. Ein Vorwiderstand für die {{wikipedia|LED}} wird in der Regel nicht benötigt, da die meisten seriellen Ports eine Konstantstromquelle mit 10-20 mA darstellen. Aus Gründen der Helligkeitssteuerung empfiehlt es sich einen Vorwiderstand mit 1 kOhm bei normalen Anzeige-LEDs (rot, gelb, grün) zu verwenden.
  
Nach Start des Plugins sollten etwa 12V zwischen Pin 4 und 5 des Comports anliegen.
+
Ein eventuelles Prellen der Tasten lässt sich durch parallel schalten eines zusätzlichen Kondensators (1 nF) zu jedem Taster beheben (Tiefpass). Mit der Softwareversion v0.0.6b ist dies nicht mehr erforderlich.
 +
 
 +
Nach Start des Plugins sollten etwa +12V zwischen Pin 4 und 5 der serielle Schnittstelle anliegen. Das ist LED1.
 +
Zwischen PIN7 und PIN5 liegen etwa -12V bei Ansteuerung. Massepunkt ist immer PIN5.
 +
 
 +
Die {{wikipedia2|EIA-232#Verkabelung und Stecker|Belegung der externen seriellen Schnittstelle}} des PC ist hier beschrieben. Für die genaue Belegung einer internen seriellen Schnittstelle sollte das Handbuch des jeweiligen Mainboards berücksichtigt werden.
 +
 
 +
==Softwareanforderungen==
 +
Beim Starten des Betriebsystems muss die serielle Schnittstelle initialisiert werden:
 +
/bin/setserial /dev/ttyS0 uart 16550A
 +
===Version bis 0.0.6b (vdr 1.4.xx)===
 +
Start beim VDR-Start durch Eintrag in die RunVDR:
 +
 
 +
-Pserial /dev/ttyS0'\
 +
 
 +
 
 +
Übliche Zuordnung Schnittstellen zum Linux-Device:
 +
* COM1: /dev/ttyS0
 +
* COM2: /dev/ttyS1
 +
* COM3: /dev/ttyS2
 +
 
 +
===Version ab 0.0.6c (vdr 1.7.xx)===
 +
In der setup.conf gibt es diese Parameter für das Plugin:
 +
 
 +
<pre>
 +
serial.Flashrate = 5
 +
serial.KeyPressDelay = 0
 +
serial.Port = 1
 +
</pre>
 +
 
 +
Die Taster werden wie eine [[Fernbedienung]] in der [[remote.conf]] angelernt. Bei der Aufforderung irgendeine Taste zu drücken (Phase 1), muss jedoch eine Taste auf der Tastatur gedrückt werden, NICHT ein Taster an der seriellen Schnittstelle!
 +
 
 +
zum Beispiel:
 +
<pre>
 +
Serial.Up Button11
 +
Serial.Down Button7
 +
Serial.Menu Button10
 +
Serial.Ok Button6
 +
Serial.Back Button9
 +
Serial.Left Button12
 +
Serial.Right Button14
 +
Serial.Red Button8
 +
Serial.Green Button1
 +
Serial.Yellow Button4
 +
Serial.Blue Button2
 +
</pre>
 +
 
 +
Die Zuordnung kann dann später dort auch beliebig geändert werden.
  
Die [http://de.wikipedia.org/wiki/EIA-232#Verkabelung_und_Stecker Belegung der externen seriellen Schnittstelle] des PC ist hier beschrieben. Für die Belegung einer internen ser. Schnittstelle s. Handbuch des jew. Mainboards.
 
   
 
<!-- ==Softwareanforderungen== -->
 
 
<!-- ==Installation== -->
 
<!-- ==Installation== -->
 
<!-- ===Optionen=== -->
 
<!-- ===Optionen=== -->
 +
<!-- ==Konfiguration== -->
 +
<!-- ===Einstellungen=== -->
 +
<!-- ===Parameter=== -->
 +
<!-- ==Sonstiges== -->
 +
<!-- ===Probleme=== -->
 +
<!-- ===Tipps=== -->
 +
<!-- ===Wunschliste=== -->
 +
<!-- ===Snapshot=== -->
  
=== Patches ===  
+
== Patches ==
  
Der folgende Patch macht das Plugin wieder kompatibel für Versionen >= 1.4. Weiterhin fügt er Einträge ins VDR-Logbuch ein, die zur Fehlersuche sehr nützlich sind.
+
Der folgende Patch macht das Plugin wieder kompatibel für Versionen >= 1.4. Weiterhin fügt er zusätzliche Einträge ins syslog ein, die zur Fehlersuche sehr nützlich sein können.
  
 
  --- serial.c 2005-07-22 12:48:36.000000000 +0200
 
  --- serial.c 2005-07-22 12:48:36.000000000 +0200
Zeile 112: Zeile 165:
 
   }
 
   }
 
   }
 
   }
 
==Softwareanforderungen==
 
Beim Boot muss die serielle Schnittstelle initialisiert werden:
 
/bin/setserial /dev/ttyS0 uart 16550A
 
 
Start beim VDR-Start durch Eintrag in die RunVDR:
 
 
-P'serial /dev/ttyS0'\
 
 
für Com1, für Com2in /dev/ttyS1 ändern.
 
 
In der setup.conf gibt es diese Parameter für das Plugin:
 
 
serial.Flashrate = 5
 
serial.Port = 1
 
 
Die Taster werden wie eine FB in der remote.conf angelernt. Bei der Aufforderung irgendeine Taste zu drücken (Phase 1), muss jedoch eine Taste auf der Tastatur gedrückt werden, NICHT ein Taster am Com-Port!
 
 
Bsp.:
 
 
Serial.Up Button11
 
Serial.Down Button7
 
Serial.Menu Button10
 
Serial.Ok Button6
 
Serial.Back Button9
 
Serial.Left Button12
 
Serial.Right Button14
 
Serial.Red Button8
 
Serial.Green Button1
 
Serial.Yellow Button4
 
Serial.Blue Button2
 
 
Die Zuordnung kann dann später dort auch beliebig geändert werden.
 
 
 
<!-- ==Konfiguration== -->
 
<!-- ===Einstellungen=== -->
 
<!-- ===Parameter=== -->
 
<!-- ==Sonstiges== -->
 
<!-- ===Probleme=== -->
 
<!-- ===Tipps=== -->
 
<!-- ===Wunschliste=== -->
 
<!-- ===Snapshot=== -->
 
  
 +
==Aktuelle Version==
 +
[http://www.lf-klueber.de/vdr-serial-0.0.6a.tgz 0.0.6a]
 
==Links==
 
==Links==
 
# [http://www.lf-klueber.de/vdr.htm Homepage des Plugins]
 
# [http://www.lf-klueber.de/vdr.htm Homepage des Plugins]
# [http://vdrportal.de/board/thread.php?threadid=17613&threadview=0&hilight=&hilightuser=0&page=2 Release-Fred]
+
# [http://www.vdr-portal.de/board/thread.php?threadid=17613 Release-Thread]
# [http://www.vdrportal.de/board/thread.php?postid=787608#post787608 Erklärung der Funktionen]
+
# [http://www.vdr-portal.de/board/thread.php?postid=229000#post229000 erweitertes Diag-Tool]
# [http://www.vdrportal.de/board/thread.php?postid=229000#post229000 erweitertes Diag-Tool]
+
# [http://www.vdr-portal.de/board/thread.php?postid=323339 nützliche Tips zum Plugin]
# [http://www.vdrportal.de/board/thread.php?postid=323339 nützliche Tips zum Plugin]
+
# [http://www.vdr-portal.de/board/thread.php?postid=363812#post363812 v0.0.6b gegen Prellen]
# [http://vdrportal.de/board/thread.php?postid=363812#post363812 v0.0.6b gegen Prellen]
+
 
# [http://www.vdr-portal.de/board/thread.php?postid=433447#post433447 v0.0.6c ab VDR >1.3.38] aber wohl Probleme mit Tasten
 
# [http://www.vdr-portal.de/board/thread.php?postid=433447#post433447 v0.0.6c ab VDR >1.3.38] aber wohl Probleme mit Tasten
  
[[Kategorie:Plugins]]
+
[[Kategorie:Veraltete Plugins]]
 
{{i18n|serial-plugin}}
 
{{i18n|serial-plugin}}

Aktuelle Version vom 8. März 2014, 08:33 Uhr

Inhaltsverzeichnis

[Bearbeiten] Beschreibung

Autor: Ralf Klueber

Mit diesem Plugin lässt sich der VDR über Hardware-Tasten steuern, die an die serielle Schnittstelle angeschlossen sind. Zusätzlich lassen sich eine oder zwei Leuchtdioden ansteuern.

Für die Nutzung des Paralleports gibt es dieses Plugin: Parout-Plugin


[Bearbeiten] Bilder

Einstellungen

[Bearbeiten] Hardwareanforderungen

  • Eine kleine Schaltung, die an die serielle Schnittstelle angeschlossen wird.

[Bearbeiten] Schaltplan

Schaltplan

[Bearbeiten] Funktionen der LED´s

LED1 = Status plugin geladen

LED2 = Status Aufnahme

Die zweite LED leuchtet bei einer aktiven Aufnahme und blinkt, wenn keine TV-Karte mehr frei für weitere Aufnahmen ist. Bei Systemen mit nur einer TV-Karte würde die LED bei aktiver Aufnahme immer blinken, da die eine vorhandene Karte für die Aufnahme gebraucht wird. Bei Systemen mit zwei TV-Karten würde die LED bei einer Aufnahme leuchten, da die zweite Karte noch "frei" ist, sie beginnt erst zu blinken, wenn auch die zweite Karte durch eine Aufnahme im Einsatz ist.

Ein kompletter Hardwareausbau ist nicht immer erforderlich und kann den persönlichen Ansprüchen und Erfordernissen angepasst werden. Damit ist eine teilweise Bestückung möglich, so können nur Taster oder nur die Anzeige per LED verwendet werden. Ein Vorwiderstand für die LED wird in der Regel nicht benötigt, da die meisten seriellen Ports eine Konstantstromquelle mit 10-20 mA darstellen. Aus Gründen der Helligkeitssteuerung empfiehlt es sich einen Vorwiderstand mit 1 kOhm bei normalen Anzeige-LEDs (rot, gelb, grün) zu verwenden.

Ein eventuelles Prellen der Tasten lässt sich durch parallel schalten eines zusätzlichen Kondensators (1 nF) zu jedem Taster beheben (Tiefpass). Mit der Softwareversion v0.0.6b ist dies nicht mehr erforderlich.

Nach Start des Plugins sollten etwa +12V zwischen Pin 4 und 5 der serielle Schnittstelle anliegen. Das ist LED1. Zwischen PIN7 und PIN5 liegen etwa -12V bei Ansteuerung. Massepunkt ist immer PIN5.

Die Belegung der externen seriellen Schnittstelle des PC ist hier beschrieben. Für die genaue Belegung einer internen seriellen Schnittstelle sollte das Handbuch des jeweiligen Mainboards berücksichtigt werden.

[Bearbeiten] Softwareanforderungen

Beim Starten des Betriebsystems muss die serielle Schnittstelle initialisiert werden: /bin/setserial /dev/ttyS0 uart 16550A

[Bearbeiten] Version bis 0.0.6b (vdr 1.4.xx)

Start beim VDR-Start durch Eintrag in die RunVDR:

-Pserial /dev/ttyS0'\


Übliche Zuordnung Schnittstellen zum Linux-Device:

  • COM1: /dev/ttyS0
  • COM2: /dev/ttyS1
  • COM3: /dev/ttyS2

[Bearbeiten] Version ab 0.0.6c (vdr 1.7.xx)

In der setup.conf gibt es diese Parameter für das Plugin:

serial.Flashrate = 5
serial.KeyPressDelay = 0
serial.Port = 1

Die Taster werden wie eine Fernbedienung in der remote.conf angelernt. Bei der Aufforderung irgendeine Taste zu drücken (Phase 1), muss jedoch eine Taste auf der Tastatur gedrückt werden, NICHT ein Taster an der seriellen Schnittstelle!

zum Beispiel:

Serial.Up Button11
Serial.Down Button7
Serial.Menu Button10
Serial.Ok Button6
Serial.Back Button9
Serial.Left Button12
Serial.Right Button14
Serial.Red Button8
Serial.Green Button1
Serial.Yellow Button4
Serial.Blue Button2

Die Zuordnung kann dann später dort auch beliebig geändert werden.


[Bearbeiten] Patches

Der folgende Patch macht das Plugin wieder kompatibel für Versionen >= 1.4. Weiterhin fügt er zusätzliche Einträge ins syslog ein, die zur Fehlersuche sehr nützlich sein können.

--- serial.c	2005-07-22 12:48:36.000000000 +0200
+++ serial.c	2007-07-30 18:52:48.135644033 +0200
@@ -72,7 +72,7 @@
   int iNumDevices;
 
 protected:
-  virtual void Recording(const cDevice *Device, const char *Name);
+  virtual void Recording(const cDevice *Device, const char *Name, const char *FileName, bool On);
 
 public:
   int GetLedStatus(int i);
@@ -95,11 +95,15 @@
   int i;
 
   for(i=0; i<iNumDevices; i++) 
-    if(iCardIsRecording[i])
-		iOccupiedDevices++;
-  
+    if(iCardIsRecording[i]) {
+	    iOccupiedDevices++;
+    }
+
   if((iNumDevices == iOccupiedDevices) && (iOccupiedDevices >0)) // Blinken
   {
+    dsyslog("[serial] all cards are recording");
     for(i=0; i<SerialSetup.iFlash; i++)
 		iLedStatus[i] |=  LEDREC; // Bit setzen
     for(i=SerialSetup.iFlash; i<MAXCYCLE; i++)
@@ -107,28 +111,39 @@
   }
   else if(iOccupiedDevices > 0) // Dauerleuchten
   {
+    dsyslog("[serial] %i cards are recording",iOccupiedDevices);
     for(int i=0;i<MAXCYCLE;i++)
 		iLedStatus[i] |=  LEDREC; // Bit setzen
   }
   else // LED aus
   {
+    dsyslog("[serial] no card is recording");
     for(int i=0;i<MAXCYCLE;i++)
 		iLedStatus[i] &= ~LEDREC; // Bit loeschen
   }
   return iLedStatus[i % MAXCYCLE];
 }
  
-void cSerialStatus::Recording(const cDevice *Device, const char *Name)
+
+ // The given DVB device has started (On = true) or stopped (On = false) recording "Name".
+ // Name is the name of the recording, without any directory path. The full file name
+ // of the recording is given in FileName, which may be NULL in case there is no
+ // actual file involved. If On is false, Name may be NULL.
+
+void cSerialStatus::Recording(const cDevice *Device, const char *Name, const char *FileName, bool On)
 {
-	int iCardIndex = Device->CardIndex();
-	iNumDevices = Device->NumDevices();
+	int iCardIndex = Device->CardIndex(); // Returns the card index of this device (0 ... MAXDEVICES - 1).
+	iNumDevices = Device->NumDevices();   // Returns the total number of devices.
 
 	if(iCardIndex < MAXDEVICES)
 	{ 
-		if(Name && Name[0])
+		if(Name && Name[0]) {
 			iCardIsRecording[iCardIndex]++;
-		else
+			dsyslog("[serial] card %i starts recording",iCardIndex);
+		} else {
 			iCardIsRecording[iCardIndex]--;
+			dsyslog("[serial] card %i stops recording",iCardIndex);
+		}
 	}
 }

[Bearbeiten] Aktuelle Version

0.0.6a

[Bearbeiten] Links

  1. Homepage des Plugins
  2. Release-Thread
  3. erweitertes Diag-Tool
  4. nützliche Tips zum Plugin
  5. v0.0.6b gegen Prellen
  6. v0.0.6c ab VDR >1.3.38 aber wohl Probleme mit Tasten
In anderen Sprachen