Raspi - LIRC + Inet-Radiostream

OP #5562604
Lesenswert?

Hallo zusammen,

ich habe mpg123 als Player für wählbare Inet-Streams auf einem R2B+ 
laufen, Anzeige über ein 2x16LCD, Steuerung über 6 Tasten. Alles auf 
einem i2c shield. Läuft soweit super.

Nun würde ich gerne LIRC nutzen um neben den Tasten auch eine IR FB 
nutzen zu können, aber es stellen sich folgende Fragen:

1) Meine Steuerung läuft über ein bash, welches zyklisch die Tasten im 
i2c shield abfragt. Wenn ich nun "ver-ODER-t" auch auf einen input aus 
LIRC reagieren möchte, wie frage ich das ab - auf einem uC hätte ich 
dazu eine entsprechende Variable, aber beim Raspi? Kann LIRC meinem bash 
den Tastendruck iwie über shared memory übergebn o.ä.? Wo finde ich ein 
Beispiel für sowas? (Script A schreibt in golbale Variable, Script B 
prüft diese)

2) Wenn der TSOP an GPIO18 hängt, wird der dann gepollt??? Das würde ja 
eine recht hohe Prozessorlast erzeugen und mit mpg123 ist der ja so 
schon gut beschäftigt? Wie erreicht man, dass beides gleichzeitig 
"flüssig" läuft?

...mir fehlt leider noch etwas die Erfahrung in der Raspi-Denke.

Klaus.
OP #5562625
Lesenswert?

...und was wäre das zauberwort bei python um zwischen zwei tasks daten 
auszutauschen?

Btw: Gibt es bei Raspi einen scheduler, dem ich mein bash anvertrauen 
kann? Momentan lasse ich es nämlich am Ende immer 0.2s schlafen, was ja 
aber auch nicht "elegant" ist.

EDIT: Verstehe, die bash als phython und dann die lb einbinden...nungut, 
die bash wollte ich nicht umschreiben, daher die frage nach einer 
globalen var. Wäre eine "pipe" eine Option, lässt sich damit aus der 
LIRC config etwas in das inet bash "pipen"?

Klaus.
Gast #5562646
Lesenswert?

Dateien im temp Filesystem (welches eine RAM Disk ist) als "globale 
Variable" (IPC) ist unter Linux vollkommen akzeptiert.
Mach das doch einfach mit der lircrc, ist das einfachste.

Es geht natürlich auch eleganter. Z.B. über Sockeds, das sieht aus wie 
Dateien, sind real aber keine.

Du kannst also die Info von lirc direkt bekommen indem du die "Dateien" 
liest die lirc anlegt
http://www.lirc.org/html/lircd.html#lbAG
Gast #5562673
Lesenswert?

IR Empfänger pollen ist nix was den pi großartig auslastet.
Wie gut das funktioniert hängt am Ende davon ab ob lirc den IR Code 
kennt (raw codes sind Mist, am besten die lirc.conf manuell schreiben). 
Ferner hängt es davon ab ob die Fernbedienung brauchbare Codes sendet 
(Kennungen für Taste wiederholt gedrückt und gehalten müssen korrekt 
gesendet werden). Aber das sind Feinheiten.
Gast #5562799
Lesenswert?

Schau dir vielleicht mal mpd als Ersatz für mpg123 an 
(https://www.musicpd.org/)

Das macht sehr viel von dem, was du per Bash hinfrickeln willst schon 
selber, lässt sich aber trotzdem bash-fernsteuern, gibt passende 
client-Programme.

Dann kann dein GPIO-Poll-Programm den Player genauso steuern, wie der 
LIRC-Empfänger, eine USB-Tastatur oder eines der vielen Client-Programme 
für Händies.
OP #5563665
Lesenswert?

Hallo,

bei mir scheitert es leider gerade an der LIRC Installation, so richtig 
finde ich dazu aber nichts:

SOLL:

lsmod | grep lirc
lirc_rpi                9032  0
lirc_dev               10583  1 lirc_rpi
rc_core                24377  1 lirc_dev

IST:

pi@xxx_PI:~ $ lsmod | grep lirc
lirc_rpi                8001  2
lirc_dev                8313  1 lirc_rpi

-> rc_core fehlt aber ich kann mir weder einen Reim daraus machen was da 
schief läuft, noch wo mein Fehler liegt. Da sich aber die meisten 
Installationsanleitungen NICHT auf die 0.9.4c-9 beziehen, ist es schwer 
das rauszufinden.

Klaus.
OP #5563708
Lesenswert?

...doooch, das war ja alles erfolgreich! zgT sehe ich auch keine 
Unterscheide zum soll, außer hier wieder in der 3. letzten Zeile:

pi@oneplus_PI:/boot $ systemctl status lircd.service
● lircd.service - Flexible IR remote input/output application support
   Loaded: loaded (/lib/systemd/system/lircd.service; enabled; vendor 
preset: enabled)
   Active: active (running) since Fri 2018-09-21 00:10:28 CEST; 19h ago
     Docs: man:lircd(8)
           http://lirc.org/html/configure.html
 Main PID: 365 (lircd)
   CGroup: /system.slice/lircd.service
           └─365 /usr/sbin/lircd --nodaemon

Sep 21 00:10:30 oneplus_PI lircd[365]: lircd-0.9.4c[365]: Info: Cannot 
configure the rc device for /dev/lirc0
Sep 21 00:10:30 oneplus_PI lircd[365]: lircd-0.9.4c[365]: Notice: 
accepted new client on /var/run/lirc/lircd
Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: 
/etc/lirc/lircd.conf.d/devinput.lircd.conf: devinput: Multiple values 
for same code:
Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: 
/etc/lirc/lircd.conf.d/devinput.lircd.conf: devinput: Multiple values 
for same code:
Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Warning: Duplicate remotes 
"devinput" found, problems ahead
Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: lircd(default) 
ready, using /var/run/lirc/lircd
Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: accepted new 
client on /var/run/lirc/lircd

Problem(?):
Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Info: Cannot configure the 
rc device for /dev/lirc0

Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: accepted new 
client on /var/run/lirc/lircd
Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: accepted new 
client on /var/run/lirc/lircd

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren