Status LEDs am Parallel Port ... Projekt Status-Instanz im vdr

  • Hi,
    seit einiger Zeit suche ich nach einer Möglichkeit den Status meiner 3 DVB Karten per LED anzeigen zu lassen. (auch andere Events sind denkbar)
    Die existierenden Lösungen setzen auf Extension Boards, die aber nur für diesen Zweck zu teuer wären.
    Das Status LED Plugin braucht den PS/2 Anschluß und ist nicht so flexibel.

    Jetzt habe ich einen Ansatz für eine wirklich einfache Lösung gefunden, bei der nur 8 LEDs über je einen Wiederstand an dem Parallelport gehängt werden. (Schaltplan im Anhang)
    Diese Lösung wird benutzt um bei fli4l z.B den Eingang einer Mail anzuzeigen. Den Source dazu habe ich im Anhang beigelegt.
    Jetzt aber zu meinem Problem:
    Wie bekomme ich den Status der DVB Karten ermittelt?
    Einen Ansatz habe gesehen, in dem ständig das messages log ausgewertet wird aber richtig gut war das nicht.
    In existierenden Scripten rumfummel kann ich wohl aber proggen ist mir nicht möglich, deshalb frage ich ob jemand mit C Kentnissen die Sache in die Hand nehmen kann.
    Ein kleines Plugin, das wärs !


    Gruß

  • Ja das Serial Plugin kommt der Sache im Bezug auf einfachen Aufbau schon sehr nah. (Da wird wohl mit einer LED angezeigt ob eine Karte aufnimmt und mit blinkender LED wenn alle Karten aufnehmen)
    Da ich beide ser. Ports belegt habe (Lirc und SmartCard Reader), kann ich das leider nicht verwenden.
    Dank Psone an der 2. FF Karte habe ich den Parallel Port halt noch frei.
    Vielleicht schaffe ich es ja das Serial Plugin auf Ausgabe am ParPort um zuproggn, aber ich glaube das ist bestimmt ne Nummer zu hoch für mich !?

  • Hi
    Also ich habe jetzt ein Plugin, welches mir die Anzahl der gerade laufenden Aufnahmen auf den 8 LEDs ausgibt (für jede Aufnahme eine LED).
    Das Plugin benutzt "parout" das ich mit google gefunden hab.


    Vielleicht hat ja jemand Interresse daran das Plugin zu erweitern.
    Ich denke da an Anzeigen wie:
    LED für :
    - DVB1 nimmt auf (rot)
    - DVB2 nimmt auf (rot)
    - DVB3 nimmt auf (rot)
    - DVB4 nimmt auf (rot)
    - VDR2DVD aktiv (grün)
    - NOAD aktiv (grün)
    - BURN Plugin aktiv(grün)
    - ????? (gelb)


    Ich kanns leider nicht :(

  • Hi Leute,


    ich will das Projekt mit den LED's am Parallelport gerne weitertreiben. Ich selbst brauche 4 Status LED (Aufnahme, Schneiden, Brennen, N.N.)


    jetzt bin ich auf der Suche nach einem Code welcher mir die Signale auf den Parallel-Port schreibt => parout wurde hier genannt.


    WO KRIEGE ICH DAS HER ==> :suche liefert leider nichts :google nur ein französisches Forum in welchem es aber (zumindest ohne Registierung und Login) keine Suchfunktion gibt.


    Wer kann mir da weiterhelfen ?
    Ist das ein komplettes Programm ? => falls Ja wäre für linvdr gelinkt super


    Danke schon mal im Voraus


    Peter

    vdr-1: Gentoo-2008.0 mit vdr-1.6.0 auf ASUS A7N8X-VM400 mit Athlon mobile XP2500+ und 2x TT-S2300 mit hw-wakeup mit Software V1.5
    vdr-2: yavdr 64-0.5.0 mit vdr-1.7.27-5 + xineliboutput 1.0.7 auf ASUS M4A88TD-M/USB3 mit Athlon II-X2-20e + Zotac GeForce G210 und Cine S2 Dual Tuner V6


  • Hi,


    ...danke, aber der erste Link liefert leider nichts (da geht's um vmware und Co)...


    Ich hab inzwischen eine quick and dirty Lösung gefunden (aus dem Buch "Steuerungsaufgaben mit Linux lösen) die ich auf meinem Arbeits-PC auch schon getestet habe. Leider kann ich auf meinem linvdr nichts kompilieren (ich habe vergeblich versucht gcc zu installieren und bekomme jetzt immer nur ...gcc: installation problem, cannot exec `as'... - weiß irgendwer wie ich das abstellen kann ? Das Developer-Paket auf der linvdr Homepage ist mir VIEL zu umfangreich.


    Kann mir bitte irgendwer den beiliegenden code für linvdr (debian woody) übersetzen und das bin-file posten - DANKE !



    Die Lösung ist alles andere als schön - aber sie funktioniert.


    Vielleicht findet sich jemand der das ganze in eine saubere Lösung gießt. In dem Buch ist auch Code für "parport" und auch ein Beispiel das Ganze als Kernel Modul (2.4) zu machen. Ist mir aber irgendwie zu heavy gewesen weil ich keinerlei Erfahrung mit Debian habe und auf meiner Gentoo-Kiste bringts mir nichts. Wenn's wem weiterhilf kann ich ihm die Sourcen zukommen lassen.


    Peter

    vdr-1: Gentoo-2008.0 mit vdr-1.6.0 auf ASUS A7N8X-VM400 mit Athlon mobile XP2500+ und 2x TT-S2300 mit hw-wakeup mit Software V1.5
    vdr-2: yavdr 64-0.5.0 mit vdr-1.7.27-5 + xineliboutput 1.0.7 auf ASUS M4A88TD-M/USB3 mit Athlon II-X2-20e + Zotac GeForce G210 und Cine S2 Dual Tuner V6


  • ke2705 => super danke, werde ich gleich mal weitertesten.


    Betreffend meinem Problem von oben => ich hatte die binutils vergessen, nachdem ich die installiert hatte funktionierte auch das kompilieren. Also jetzt häng ich das binary selbst an, vielleicht kanns wer gebrauchen...

  • Hi,


    Nachdem ich nun die LEDs physikalisch ansteuern kann fehlt mir noch der korrekte Einstiegspunkt für die Anzeige bzw. das Zurücksetzen. Sprich wie kriege ich raus wann vdr

    • das Schneiden startet bzw. beendet
    • das burn-plugin startet bzw. beendet

    Beim Aufnehmen ist's leicht => -r als Startparameter von vdr, aber bei den beiden anderen habe ich bis dato nichts gefunden. Auf die Schnelle fällt mir nur ein, daß ich einfach das zuständige Programm umtaufe und ein kleines Script dazwischen setze - nur wie soll das bei einem plugin funktionieren ?


    Gibt's irgendeine Instanz bei der sich vdr meldet sobald er etwas neues anstößt bzw. etwas abschließt ? Wenn es so etwas gäbe, könnte man sich dort reinhängen und alle möglichen Parallel-Prozesse anwerfen (in meinem Falle die Statusanzeige).


    ke2705 ... gehe ich recht in der Annahme, daß portout = led.c kompiliert ist ? :D - jaja sieht ganz danach aus.


    Peter

    vdr-1: Gentoo-2008.0 mit vdr-1.6.0 auf ASUS A7N8X-VM400 mit Athlon mobile XP2500+ und 2x TT-S2300 mit hw-wakeup mit Software V1.5
    vdr-2: yavdr 64-0.5.0 mit vdr-1.7.27-5 + xineliboutput 1.0.7 auf ASUS M4A88TD-M/USB3 mit Athlon II-X2-20e + Zotac GeForce G210 und Cine S2 Dual Tuner V6


  • Hallo,


    wenn interesee besteht dann könnte ich das serled Plugin dahingehend erweitern, daß auch über parout angesprochene LEDs verwendet werden können (Momentan können 2 LEDs pro serieller Schnittstelle und die Tastatur-LEDs angesprochen werden.) Zum testen präuchte ich dann allerdings eure Hilfe, da bei mir der LPT-Port bestzt ist.


    Die das Schneiden kann serled schon Anzeigen, auch wenn ich den dafür nötigen patch noch auf vdr-1.4 updaten muß. Mit burn muß ich mir noch was überlegen. Aber jetzt kommt ja der Winter und ich hab vielleicht wieder Zeit, die ganzen Progrmmierprojekte, die ich bis jetzt aufgeschoben habe in Angriff zu nehmen.


    Viele Gruße


    Euer frausch


    PS: Legt parout eigentlich konstannte Spannungsniveaus an, oder braucht man da noch ein Flipflop?

  • Hi,


    ...das wäre super - alles in einem plugin zu konzentrieren macht durchaus Sinn (und mir die Arbeit leichter -hähä).


    Testen => kein Problem das kann ich übernehmen (bei mir sind die seriellen Ports belegt = hw-wakeup und LCD) und der par-Port frei


    Hardwaremäßig sind die LEDs direkt (über Pull-Up 330 Ohm) an den Pins 2-9 angeschlossen. Wenn jetzt die zugehörigen Bits im Output-Register gesetzt werden (das macht das oben gelistete Programm) leuchten sie und beim Rücksetzen gehen sie wieder aus. Einzelne LED-Projekte setzten und löschen die Bits in einer Endlosschleife und erzeugen damit ein Blinken - ist mir persönlich unsympatisch weil ich Endlosschleifen generell nicht mag (Nebeneffekte, Blockieren von Ressourcen, CPU-Last, etc.)


    Macht es Sinn einen eigenen Thread betreffend der zentralen Status Instanz anzuwerfen ? Mit dieser täten wir uns allgemein leichter.


    Noch ne Frage: bei mir liegt unter /etc/vdr ein epgscan.sh - wird dieses für den laufenden EPG-Scan des vdr verwendet oder macht er das intern ? Falls dieses verwendet wird, kann ich den Scan leicht über eine meiner LEDs anzeigen lassen indem ich den Aufruf einfach in das script packe.


    Peter

    vdr-1: Gentoo-2008.0 mit vdr-1.6.0 auf ASUS A7N8X-VM400 mit Athlon mobile XP2500+ und 2x TT-S2300 mit hw-wakeup mit Software V1.5
    vdr-2: yavdr 64-0.5.0 mit vdr-1.7.27-5 + xineliboutput 1.0.7 auf ASUS M4A88TD-M/USB3 mit Athlon II-X2-20e + Zotac GeForce G210 und Cine S2 Dual Tuner V6


  • Hallo STPTECH,


    also ich würde diesen thread einfach weiter führen.


    Wie das mit dem EPG-scan ist, weiß ich leider nicht. Aber für das BURN-Plugin währe es sicher eine Möglichkeit die Scripte zu ändern.


    Viele Grüße


    Euer frausch

  • Zitat

    Original von frausch...Aber für das BURN-Plugin währe es sicher eine Möglichkeit die Scripte zu ändern....


    Ich bin immer davon ausgegangen, daß die plugins dynamisch nachgeladene Module sind welche beim Sart des VDR registriert werden müssen. Werden hier (bei einzelnen) in der Folge dann weitere Scripte nachgeladen bzw. aufgerufen ? Wenn Ja weißt Du welche ? und zu welcher Gelegenheit ? ich hab mir den Code noch nicht angesehen...


    Nun aber zu meiner Idee des Status-Plugins => Aufruf an alle Coder welche am vdr basteln (ich hoffe einer stolpert über diesen thread, könnte sonst jeder der einen kennt diesen mal kurz darauf stoßen...):

    • das status-plugin (oder eine interne Funktionalität des vdr) wird als erste Aktion von jedem plugin-xy und länger dauernder vdr-Aktion aufgerufen (analog zu -r beim vdr)
    • dieses status-plugin "merkt" sich den Aufrufer zusammen mit einer Kurzbezeichnung der Aktion (ggf. noch weitere Infos wie Startzeit, etc. ?) in einer nach außen hin zugänglichen Struktur (ggf. in einem pseudo Dateisystem analog /proc oder /sys)
    • wenn das plugin-xy (oder die vdr-Aktion) fertig ist erfolgt ein erneuter Aufruf des status-plugins welches nun den Marker in der Struktur wieder zurück setzt
    • zusätzlich erlaubt dieses status-plugin eine sub-routine (analog -r vom vdr) welche es seinerseits aufruft und diese dann ggf. Aktionen setzt (zB: Status-LEDs)


    Damit sind zwei wesentliche Funktionalitäten gegeben:
    [list=1]
    [*]jeder kann jederzeit (über die Struktur) feststellen, was der vdr gerade macht
    [*]direkt vor und nach einer Aktion bzw. plugin Aufruf können parallele Aktionen gesetzt werden, ohne daß ein "watchdog" laufend aufpassen muß ob sich etwas tut
    [/list=1]
    So und jetzt prügelt mich - aber ich glaube, daß es eine solche (Grund)Instanz im vdr bereits gibt und diese somit nur mehr um die öffentliche Infodarstellung sowie den Aufruf eines status-plugins erweitert gehört....


    Leider sind meine Programmierzeiten schon vorbei (Beruf, Familie, etc.) und ich kann mich deswegen nicht selbst ins Coden stürzen (insbesondere den vdr-code zu analysieren wo es wie am besten reinpaßt) - aber ich hoffe, hier mit Anregungen etwas beitragen zu können.


    Also laßt uns die Suppe gemeinsam kochen...


    Peter

    vdr-1: Gentoo-2008.0 mit vdr-1.6.0 auf ASUS A7N8X-VM400 mit Athlon mobile XP2500+ und 2x TT-S2300 mit hw-wakeup mit Software V1.5
    vdr-2: yavdr 64-0.5.0 mit vdr-1.7.27-5 + xineliboutput 1.0.7 auf ASUS M4A88TD-M/USB3 mit Athlon II-X2-20e + Zotac GeForce G210 und Cine S2 Dual Tuner V6


  • Hallo STPTECH,


    möglicherweise ist das nur in der CVS-Version so. Aber da werden von burn scripte aufgerufewn, die dann das demuxen etc machen.


    Dine Idee finde ich gut. In vdr gibt es eine Status-Klasse, die einige callback-Funktionen hat. Man leitet einfach eine Klasse von dieser Statusklasse ab, und überlät diese callback funktionen. Allerdings gibt es nicht für jedes Erreignis eine callback-Funktion. Vor allem nicht für das was in den Plugins so vor sich geht.


    Viele Grüße


    Dein frausch

  • Hi,


    Das mit den scripten vom burn-plugin sollte eigentlich auch in der aktuellen Version so sein (nicht nur CVS). Ich muß mir mal genauer ansehen was es wann mancht - eigentlich wäre nur interessant welches script als erstes und welches als letztes aufgerufen wird (unabhängig von allen möglichen internen Optionen), da könnte ich mich dann (zwischenzeitlich) reinhängen.


    Das mit den callback Funktionen klingt verdammt nach C++ (ich habe mich davor und insbesondere der ganzen Klassenlehre eigentlich gedrückt...)


    Mir ist auch klar, daß meine Idee in der Folge alle plugins und den vdr selbst betrifft => deswegen auch der Aufruf die Programmierer darauf zu stoßen (weil ich befürchte, daß diese unseren aktuellen thread mangels eigenem Interesse übersehen). Ich werde mal "machtnix" anstoßen den Titel zu erweitern und einen MOD daß er einige Programmierer antippt.


    Peter

    vdr-1: Gentoo-2008.0 mit vdr-1.6.0 auf ASUS A7N8X-VM400 mit Athlon mobile XP2500+ und 2x TT-S2300 mit hw-wakeup mit Software V1.5
    vdr-2: yavdr 64-0.5.0 mit vdr-1.7.27-5 + xineliboutput 1.0.7 auf ASUS M4A88TD-M/USB3 mit Athlon II-X2-20e + Zotac GeForce G210 und Cine S2 Dual Tuner V6


  • Hi,


    leider bin ich noch nicht wirklich weiter gekommen. Ich habe von Klaus den Hinweis erhalten mir mal die cStatus in status.h anzusehen - allerdings hatte ich noch keine Zeit mich wirklich auf die Sourcen vom VDR zu stürzen.


    Zwischenzeitlich habe ich das ganze über eine (unsaubere) Zwischenlösung verwirklicht:


    und das habe ich dann in den rwrapper.sh integriert:



    Wie gesagt, wenn ich Zeit habe guck ich mal in die Sourcen und check was mir so einfällt wie ich das mit dem cStatus lösen kann....


    Peter

    vdr-1: Gentoo-2008.0 mit vdr-1.6.0 auf ASUS A7N8X-VM400 mit Athlon mobile XP2500+ und 2x TT-S2300 mit hw-wakeup mit Software V1.5
    vdr-2: yavdr 64-0.5.0 mit vdr-1.7.27-5 + xineliboutput 1.0.7 auf ASUS M4A88TD-M/USB3 mit Athlon II-X2-20e + Zotac GeForce G210 und Cine S2 Dual Tuner V6


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!