<<< Previous topic - Next topic >>> |
|
Author |
Message |
beltle
Joined: 11 Jul 2008 Posts: 3
|
Posted: 14.07.2008, 10:31 Post subject: Skripting auf DNP5370 |
|
|
Hallo,
ich habe eine Frage zum Shell-Skripting mit dem DNP5370. Ist es möglich mit der msh- Shell Funktionen zu definieren? Mir ist das bisher nicht gelungen.
Ich habe folgende Schreibweisen verwendet:
function FUNKTIONSNAME { ANWEISUNGEN }
und
FUNKTIONSNAME () { ANWEISUNGEN }
in beiden Fällen bekomme ich einen syntax- error als Fehlermeldung zurück.
Gruß
Michael |
|
Back to top |
|
|
ene
Joined: 25 Jun 2007 Posts: 14
|
Posted: 17.07.2008, 08:16 Post subject: |
|
|
Hallo,
Die Shell des DNP/5370 unterstützt keine Funktionen. Stattdessen könten sie die case Anweisung verwenden.
Gruß
ENE |
|
Back to top |
|
|
beltle
Joined: 11 Jul 2008 Posts: 3
|
Posted: 24.07.2008, 15:48 Post subject: Serielle Schnittstelle auslesen |
|
|
Hallo,
statt Funktionen verwende ich nun subskripte und binde sie mittels sourcing ein.
Gibt es eine Möglichkeit mit Skripten Daten von der seriellen Schnittstelle einzulesen? Die Schwierigkeit dabei ist, dass nur ein Byte (ASCII-Zeichen) von dem angeschlossenen Gerät geschickt wird.
Ich habe read -n1 VAR </dev/ttyS0 und head -c 1 /dev/ttyS0 getestet, aber die Funktionen haben die Parameter wohl nicht implementiert. Gibt es andere Möglichkeiten?
Gruß
Michael |
|
Back to top |
|
|
beltle
Joined: 11 Jul 2008 Posts: 3
|
Posted: 29.07.2008, 15:13 Post subject: nur eingeschränktes sourcing |
|
|
Hallo,
das Sourcing funktioniert nur eingeschränkt. Nach 5 Skriptaufrufen beendet die Shell automatisch mit der Fehlermeldung "shell input nested too deeply". Ich vermute, dass ein Stack überläuft (http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/archive/2007/05/msg00124.html).
Wie kann ich das Problem umgehen, ich habe keine Möglichkeit gefunden. Läßt sich der Stack irgendwie erhöhen?
Gruß
michael |
|
Back to top |
|
|
ene
Joined: 25 Jun 2007 Posts: 14
|
Posted: 04.08.2008, 16:47 Post subject: |
|
|
Hallo,
Die Shell des DNP/5370 ist eine busybox msh shell. In dieser ist die Tiefe der Verschachtelungen fest einkodiert (siehe busybox Quellcode msh.c). Nach 8 verschachtelungen:
Code: | #define NPUSH 8 /* limit to input nesting */ |
ist ende wie man heraus sieht:
Code: | if (++e.iop >= &iostack[NPUSH]) {
e.iop--;
err("Shell input nested too deeply");
gflg++;
return;
} |
Dies lässt sich nicht so einfach ändern, außer man hackt die busybox.
Gruß
ENE |
|
Back to top |
|
|
|