mit script ein relais an com schalten. Wie?

  • ok das macht es ein wenig klarer.


    das heist also,


    dd = der name des prozesses
    der prozess wäre dann das if welches auf /dev/ttyS0 was ausgibt.
    und der ganze prozess wird dann mit dem pid=$! als prozess id gespeichert um es später mit kill $pid zu beenden. sehe ich das richtig?

    Bilder meines Lüfterlosen eigenbau VDRs an dem ich momentan baue.

    Mein VDR:
    Asus A7N8X-VM/400, AMD Athlon XP 1700+ JIUHB DLT3C, 768MB DDR, 250GB HDD, DVB-S FF 1.3, Skystar 2.6d, 27x4 LCD mit SMD LED Hintergrundbeleuchtung, Rasputin Hardware-Wakeup, 7" TFT für GraphTFT, AVBoard.
    Debian 4.0, Kernel 2.6.19, VDR 1.4.4
    Alles im Selbstgebauten Alu-gehäuse.

  • Gib mal "man dd" ein.


    dd ist ein Befehl ähnlich wie cp um Dateien (bzw. Dateiinhalte) zu kopieren. z.B.


    dd if=/irgend/eine/datei of=test.dat count=2048


    kopiert die ersten 2048 Blocks von if (input file) nach of (output file)


    Durch den Veruch vom com port (/dev/ttyXX) was einzulesen geht der DTR-Pin auf high, um den daran (nicht angeschlossenen) Modem zu signalisieren, dass die Schnittstelle jetzt bereit ist um Daten entgegen zu nehmen (DTR=Data terminal ready)


    Gruß
    Roland

    Software: VDR 1.4.3, mp3, osdpip, streamdev-server, femon, wapd, X11, Wireless Keyboard Kernel: 2.6.18
    Hardware: 1x DVB-S v 1.3, 1x Skystar 2, Celeron@2GHz, 256 MB RAM, 4 HDs Raid1/5, Total: 600 GB, Asus P4S533 cmi8738 & LAN on board 6 PCI
    40" Sammelbestellungs-LCD an ATI Radeon 9550 DVI-Out + tvtime, 70 cm TV an J2-RGB-Out
    Organisator der ersten und zweiten VDR-Sanitizer Sammelbestellung.
    In progress: POV-ION 330 - MediaPointer MP-S2 - vdr 1.7.9 - vdr-xine(vdpau)

  • ok vielen dank jetzt hab ichs gecheckt. :D

    Bilder meines Lüfterlosen eigenbau VDRs an dem ich momentan baue.

    Mein VDR:
    Asus A7N8X-VM/400, AMD Athlon XP 1700+ JIUHB DLT3C, 768MB DDR, 250GB HDD, DVB-S FF 1.3, Skystar 2.6d, 27x4 LCD mit SMD LED Hintergrundbeleuchtung, Rasputin Hardware-Wakeup, 7" TFT für GraphTFT, AVBoard.
    Debian 4.0, Kernel 2.6.19, VDR 1.4.4
    Alles im Selbstgebauten Alu-gehäuse.

  • könnte man nicht auch das so machen?
    (Ich finde das sieht so schöner aus ;))


    cat /dev/ttyS0 & pid=$!

    Aktuelle Systeme:
    VDR-Server: MSI KT6A Ultra FISR ; Athlon XP 2200+ ; GrKa Geforce 2 MX; 256MB DDR-SDRam Plugins: streamdev-server, remote
    2 x DVB-Budget Karte, Gentoo, Kernel 2.6.8 usw....

  • Hallo an alle "die kaffee zu code machen können" (zitat lola)!
    ich stehe vor einem ähnlichen problem -> Dolby muten
    Kurzfassung: ich möchte ein signal vom comport (DTR oder RTS) schalten, wenn der VDR gemutet wird (Mute drücken...). dieses schaltet mir dann meinen optischen ausgang ab. hardware funzt schon.
    problem: der besagte comport ist evtl. bereits geöffnet (von minicom zu monitoring-zwecken).
    wie schaff ich es, dieses signal zu ändern, OHNE die sache mit comport öffnen/schließen?? meine einschränkungen stehen in o.g. thread -> hier.


    Ich hoffe ihr habt da eine idee, ich bin des scriptens so fast gar nicht mächtig...


    besten dank


    Bambi

    Aktueller Stand:
    Gehäuse: Yang-IT A211 * EPIA LN10000EG 1GHz-C7 + 1GB DDR2-RAM * 20GB Notebook-Platte PATA * 250GB WD-Platte Caviar 2500AAJS SATA * LG GSA-H62N DVD-Brenner SATA * TT 1.5-FF-Karte * easyVDR 0.6.2
    Eigenbau-IR-Einschalter nach Atric mit Gehäuselüfter-Steuerung, J2-RGB-Ausgang und S/P-DIF optisch * AtmoLight "Triple" (<^>)

  • Zitat

    Original von Bambi
    [...]
    problem: der besagte comport ist evtl. bereits geöffnet (von minicom zu monitoring-zwecken).
    wie schaff ich es, dieses signal zu ändern, OHNE die sache mit comport öffnen/schließen?? .....


    Gar nicht.


    Wenn ein COM Port von einem Prozess geöffnet wird, dann ist er für alles andere nicht erreichbar, egal ob dieser Prozess die Steuerleitungen ( z.B. DTR oder RTS) benutzt oder nicht.

  • ok... dann werd ich da wohl was ändern müssen... aber einen ganzen ft232-chip nur dass ich eine leitung ein und ausschalten kann is doch a weng viel, der kostet immerhin gute 4 euronen... auf das ständig angeschlossene monitoring kann ich zur not verzichten.
    gibts noch ne andere möglichkeit ein signal aus meinem vdr zu bekommen... (ich hab z.b. noch einen anschluss für IrDA frei)???
    noch ne idee: da in naher zukunft eh ein ir-sender kommt... kann ich lirc anweisen, ein entsprechendes signal zu ändern (da muss ich was umprogrammieren, gell?!), weil der port ist ja dann eh offen...!?

    Aktueller Stand:
    Gehäuse: Yang-IT A211 * EPIA LN10000EG 1GHz-C7 + 1GB DDR2-RAM * 20GB Notebook-Platte PATA * 250GB WD-Platte Caviar 2500AAJS SATA * LG GSA-H62N DVD-Brenner SATA * TT 1.5-FF-Karte * easyVDR 0.6.2
    Eigenbau-IR-Einschalter nach Atric mit Gehäuselüfter-Steuerung, J2-RGB-Ausgang und S/P-DIF optisch * AtmoLight "Triple" (<^>)

  • Hi,


    Zitat

    Original von C-3PO


    Gar nicht.


    Wenn ein COM Port von einem Prozess geöffnet wird, dann ist er für alles andere nicht erreichbar, egal ob dieser Prozess die Steuerleitungen ( z.B. DTR oder RTS) benutzt oder nicht.


    Wenn man aber die SST nur RDONLY öffnet (PinSet IOCTL funzt trotzdem) geht das schon;
    schreibe gerade serpin.c dahingehend um.


    Minicom kommuniziert hier gerade, parallel kann ich die DTR + RTS blinken lassen (SST-Tester);
    nochmal bissi testen, dann stelle ichs hier rein.

  • das wäre ja perfekt und die beste lösung... viel erfolg, ich zähl auf dich!


    nächster schritt: wie krieg ich das hin, das dieser Befehl aufgerufen wird, wenn ich den vdr stummschalte?? wie bekomm ich raus, ob gerade eine timer-aufnahme läuft (-> dann auch stummschalten)??

    Aktueller Stand:
    Gehäuse: Yang-IT A211 * EPIA LN10000EG 1GHz-C7 + 1GB DDR2-RAM * 20GB Notebook-Platte PATA * 250GB WD-Platte Caviar 2500AAJS SATA * LG GSA-H62N DVD-Brenner SATA * TT 1.5-FF-Karte * easyVDR 0.6.2
    Eigenbau-IR-Einschalter nach Atric mit Gehäuselüfter-Steuerung, J2-RGB-Ausgang und S/P-DIF optisch * AtmoLight "Triple" (<^>)

  • ich mach das per Universal-FB. Alle OneforAll FBs können "Ton-Direkt Steuerung" d.h. wenn ich laut/leise/mute mache wird direkt mein Amp angesteuert und nicht der VDR, dieser ist immer auf max.

    VDR-Server: AMD Athlon X2 5200+ ,ASUS M3N78 (Geforce8200), 2x 2GB RAM, 2xTT DVB-C 1501, 3x WD AV-GP 2000GB in RAID5, yaVDR 0.5
    Client 1: Desktop PC, Win7

  • Also, "stummschalten" am besten per lirc und irexec, vdr nicht auf die mute taste reagieren lassen, und auf die taste ein script legen welches dir den com-port toggelt sowie per svdrpsend das mute an den vdr schickt.


    Bei ner timergesteuerten Aufnahme automatisch stumm schalten lassen finde ich ziemlich sinnlos... und wüsste auch nicht wie es gehen soll (ausser im vdr code zu ändern)
    Zudem sollte ja eh kein Ton kommen wenn keiner TV schaut, da ja TV + Receiver aus sein sollten.
    Wenn nicht verballerst Du sinnlos Strom und solltest dies ändern!
    Und wenn grad wer tv schaut ist das mute wohl nicht erwünscht...

  • @m.keller: fällt bei mir flach, ich muss den optischen ausgang abschalten, da über einen verteiler noch meine ps2 dranhängt, die stören sich gegenseitig -> siehe mein alter therad "dolby muten":


    Code
    VDR ->------\
                 >----->----- DD-Receiver 
    PS2 ->------/


    die uni-FB brauch ich eh zum lautstärke-regeln der dolby-anlage...


    netvista-fan: selbes problem, wenn ne aufnahme läuft kann ich sonst nicht zocken...

    Aktueller Stand:
    Gehäuse: Yang-IT A211 * EPIA LN10000EG 1GHz-C7 + 1GB DDR2-RAM * 20GB Notebook-Platte PATA * 250GB WD-Platte Caviar 2500AAJS SATA * LG GSA-H62N DVD-Brenner SATA * TT 1.5-FF-Karte * easyVDR 0.6.2
    Eigenbau-IR-Einschalter nach Atric mit Gehäuselüfter-Steuerung, J2-RGB-Ausgang und S/P-DIF optisch * AtmoLight "Triple" (<^>)

    2 Mal editiert, zuletzt von Bambi ()

  • Hi,


    zwar nicht völlig gegen Fehleingaben gefeit, aber läuft hier soweit:



    Datei (Quelle + gcc-4.3.2. Kompilat)

  • wow...! wenn das echt so funktioniert wäre das super... kann ich eigentlich wenn ich den comport nur read only aufmache dann auch was senden??


    wo schmeiß ich denn die fertige datei hin?? wenn ich jetzt beim druck auf die mute-taste ein script aufrufen möchte, wie würde denn das dann in der keymacros.conf aussehen? und wie sieht das script aus? vor allem brauch ich ne möglichkeit rauszufinden, ob ich jetzt ein oder ausschalten muss... aber eins nach dem anderen. vielen dank erstmal für deine klasse arbeit!

    Aktueller Stand:
    Gehäuse: Yang-IT A211 * EPIA LN10000EG 1GHz-C7 + 1GB DDR2-RAM * 20GB Notebook-Platte PATA * 250GB WD-Platte Caviar 2500AAJS SATA * LG GSA-H62N DVD-Brenner SATA * TT 1.5-FF-Karte * easyVDR 0.6.2
    Eigenbau-IR-Einschalter nach Atric mit Gehäuselüfter-Steuerung, J2-RGB-Ausgang und S/P-DIF optisch * AtmoLight "Triple" (<^>)

  • Hi,


    Zitat

    Original von Bambi
    kann ich eigentlich wenn ich den comport nur read only aufmache dann auch was senden??


    so ist es in der obigen Version gedacht, also das parallel zu einem Terminalprogramm (minicom) die Signale geschaltet werden; ohne dieses Parallel-Programm werden die Signale beim Programmende (=Schließen der SST) wieder zurückgesetzt.


    Deshalb wird es noch eine Version 0.2 geben, bei der das Programm selbst im Speicher bleibt und mit den Signalen SIGUSR1/2 von außen dann geschaltet werden kann; so kann serpin_set dann auch standalone dauerhaft schalten.

  • Hi,


    sodele, Version 0.2 (+ permanent mit Signalhandling), obiger Link aktualisiert.




    Für getrennte DTR/RTS-Schaltung einfach Programm-Links anlegen und mehrfach starten:


Jetzt mitmachen!

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