Autor Thema: Subprocess steuern  (Gelesen 319 mal)

Offline ulli

  • Full Member
  • ***
  • Beiträge: 490
Subprocess steuern
« am: 01 Oktober 2018, 21:22:26 »
Hallo zusammen,
ich suche und probiere nun schon seit einigen Tagen ein Programm aus Perl heraus zu starten, dessen Ausgabe zu überwachen und steuerbefehle abzusetzten.
Das Programm ist in cpp und es handelt sich um eine consolen anwendung.

Ich will also aus Perl das proGramm starten und dann über stdin und stdout des Terminals das Programm steuern.
Ich habe herausgefunden das IPC::RUN start geeignet wäre, ich bekomme es aber nicht ans laufen.
Hat einen evtl einen Beispielcode für so eine Anwendung?
Das wäre super!
FHEM auf Beaglebone Black mit Debian.
1x Jeenode (433MHz): IR send/receive; Baumarkt Funksteckdosen HX2262 send/receive; LEDs
1x Jeenode (868MHz): FS20 send/receive; 2x Heizungsthermostate ETH200 comfort; 2x LaCrosse Temperatursensoren (send)/receive; Piezo Summer für akustische Rückmeldung

Offline ulli

  • Full Member
  • ***
  • Beiträge: 490
Antw:Subprocess steuern
« Antwort #1 am: 02 Oktober 2018, 20:40:31 »
Kann keiner helfen?
FHEM auf Beaglebone Black mit Debian.
1x Jeenode (433MHz): IR send/receive; Baumarkt Funksteckdosen HX2262 send/receive; LEDs
1x Jeenode (868MHz): FS20 send/receive; 2x Heizungsthermostate ETH200 comfort; 2x LaCrosse Temperatursensoren (send)/receive; Piezo Summer für akustische Rückmeldung

Offline Wuppi68

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1767
  • Wuppertaler Wimpelbeauftragter
Antw:Subprocess steuern
« Antwort #2 am: 02 Oktober 2018, 21:25:12 »
hmmmm,

hier https://metacpan.org/pod/IPC::Run gibt es doch auch Beispiele ... aber auf diese Art und Weise musst Du auf jeden Fall den Output pollen --> nicht so gut

da könnte es deutlich eleganter sein, ein Modul zu schreiben, welches folgende minimal Funktionen hat

start: führt einen Befehl im Hintergrund aus
write: schreibt in STDIN vom Prozess
read: liest von STDOUT vom Prozess
error: liest VON STDERR

optional signal: sendet ein Signal zum Prozess

readings:
charAvail --> Zeichen im Puffer von STDIN
lineAvail --> Zeile im Puffer
charCnt --> Zeichen im Puffer

...
Jetzt auf nem I3 und primär Homematic

kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Offline ulli

  • Full Member
  • ***
  • Beiträge: 490
Antw:Subprocess steuern
« Antwort #3 am: 05 Oktober 2018, 17:47:34 »
Du meinst aus Perl heraus?
Das polling bei ipc Run stört mich auch, weil es das Programm blockiert und die CPU last auf 90%ansteigen lässt.
FHEM auf Beaglebone Black mit Debian.
1x Jeenode (433MHz): IR send/receive; Baumarkt Funksteckdosen HX2262 send/receive; LEDs
1x Jeenode (868MHz): FS20 send/receive; 2x Heizungsthermostate ETH200 comfort; 2x LaCrosse Temperatursensoren (send)/receive; Piezo Summer für akustische Rückmeldung

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17146
Antw:Subprocess steuern
« Antwort #4 am: 05 Oktober 2018, 19:02:25 »
Erstellt Dein Programm zufällig ein Unix-Domain-Socket? Dann wäre das DevIO Modul eine Option.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
kein Support für cfg Editierer

Offline ulli

  • Full Member
  • ***
  • Beiträge: 490
Antw:Subprocess steuern
« Antwort #5 am: 07 Oktober 2018, 17:45:23 »
Erstellt Dein Programm zufällig ein Unix-Domain-Socket? Dann wäre das DevIO Modul eine Option.

Der Tipp war Goldwert!
Habe jetzt einen Socket Server erstellt und öffne diesen in FHEM mit UNIX:STREAM!

Danke!
FHEM auf Beaglebone Black mit Debian.
1x Jeenode (433MHz): IR send/receive; Baumarkt Funksteckdosen HX2262 send/receive; LEDs
1x Jeenode (868MHz): FS20 send/receive; 2x Heizungsthermostate ETH200 comfort; 2x LaCrosse Temperatursensoren (send)/receive; Piezo Summer für akustische Rückmeldung
Gefällt mir Gefällt mir x 1 Liste anzeigen