Seltsames Verhalten von Perl in Verbindung mit Gambas

Probleme, Fragen und Lösungen
Antworten
Kagome33
Foriker
Beiträge: 3
Registriert: So 26. Jul 2015, 12:08
Kontaktdaten:

Seltsames Verhalten von Perl in Verbindung mit Gambas

Beitrag von Kagome33 » So 26. Jul 2015, 12:29

Hi, gab keinen Thread dazu also mach ich mal einen auf.
Ich werd hier langsam Wurmig...

Also... Ich steuere meinen Raspberry via Gambas an (über SHELL) und für weitere Dinge via Perl scripte die von Gambas aus Aufgerufen werden.
Das eine script fragt den Rasp nach dem Status der angeschlossenen Relaiskarte, und gibt das als Audio aus. Das funktioniert Wunderbar.
Das gleiche script in etwas abgewandelter Form speichert die Werte in einer Datei "bla.....txt" mit Inhalt 00000000 Bzw 1 wo das Relais an ist.. Diese Datei lese ich über File.load mit Gambas ein und gebe den Inhalt zu Testzwecken in ein Label.

Auch das Funktioniert, solange ich das script über die bash starte. Starte ich das script aber über Gambas ( z.b. über nen Button ) wird es zwar ausgeführt, aber die Datei wird nicht geschrieben.
Die Pfade stimmen alle und die Rechte auch. Ich habe natürlich ein WAIT angefügt, damit das script in Ruhe fertig werkeln kann. Jemand ne Idee was da Schief läuft ?
Ist Gambas 2 btw. vielleicht kann das ja mal jemand nachstellen und Berichten.

Danke im Voraus.

tux_
Moderator
Beiträge: 942
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: Seltsames Verhalten von Perl in Verbindung mit Gambas

Beitrag von tux_ » Do 30. Jul 2015, 16:02

Kannst du uns den relevanten Quelltext einmal zeigen? Gambas hat einige Spezialitaeten, was relative Pfade betrifft.

Und nein, Gambas 2 habe ich seit Ende 2011 nicht mehr angefasst.
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

Kagome33
Foriker
Beiträge: 3
Registriert: So 26. Jul 2015, 12:08
Kontaktdaten:

Re: Seltsames Verhalten von Perl in Verbindung mit Gambas

Beitrag von Kagome33 » Fr 31. Jul 2015, 10:39

Gambas 3 läuft auf meinen Systemen leider nicht.

Im Anhang das Perl script und der Aufruf von Gambas aus.
Timer Interval ist 1 minute.

Der button ist nur zu testzwecken mit dem script belegt. Füge ich im Script z.b. sleep 10 ein dann
"wartet" der button dank WAIT auch Brav 10 sek. d.h. das Script wird definitiv ausgeführt, nur die Datei wird nicht erstellt.
Starte ich das script von der Bash - funktioniert es Tadellos.
Dateianhänge
relaisstatusgambas.txt
(2.27 KiB) 130-mal heruntergeladen
snippet.txt
(512 Bytes) 119-mal heruntergeladen

tux_
Moderator
Beiträge: 942
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: Seltsames Verhalten von Perl in Verbindung mit Gambas

Beitrag von tux_ » So 2. Aug 2015, 18:13

perl code
$dateiname=rlstattxt;

und
gambas code
SHELL "perl /home/derboss/scripts/relaisstatusgambas.pl" WAIT 
rlstat = File.Load("/home/derboss/scripts/rlstattxt")


In Gambas gibt es kein Konzept von relativen Pfaden. Du startest ein Perl-Skript von einem Gambas-Prozess aus und dieses Skript schreibt Daten in eine Datei mit relativem Pfad. Es ist aber nicht so klar (vor allem mir nicht bei Gambas 2), in welchem Verzeichnis der Gambas-Interpreter startet (ich nehme an, der Perl-Interpreter uebernimmt dann das CWD von der Shell und die ihrerseits vom Gambas-Interpreter). Hast du nach der "rlstattxt"-Datei schon im Projekt-Verzeichnis des Gambas-Projekts gesucht und in deinem Home-Verzeichnis?
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

Kagome33
Foriker
Beiträge: 3
Registriert: So 26. Jul 2015, 12:08
Kontaktdaten:

Re: Seltsames Verhalten von Perl in Verbindung mit Gambas

Beitrag von Kagome33 » Mo 3. Aug 2015, 12:39

tux_ hat geschrieben:perl code
$dateiname=rlstattxt;

und
gambas code
SHELL "perl /home/derboss/scripts/relaisstatusgambas.pl" WAIT 
rlstat = File.Load("/home/derboss/scripts/rlstattxt")


Gnarf ! Natürlich ! es hätte natürlich $dateiname="/home/derboss/scripts/rlstattxt"; heissen müssen :(
Die Datei habe ich auf deinen Tip hin im Home Verzeichnis gefunden.
Ist mal wieder bewiesen, das der Fehler oft VOR dem Computer sitzt :)

Danke, nun kann ich weitermachen.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste