Bash, serielle E / A und Arduino

Also, ich bin ein bisschen überfordert und habe das Gefühl, einer Lösung sehr nahe zu sein, aber es funktioniert noch nicht ganz. Hier ist meine Situation:

Ich arbeite mit einem Arduino-Mikrocontroller und versuche, zwei Bash-Skripte (derzeit unter Mac OS X 10.6) zu schreiben, mit denen (a) alle seriellen Daten, die von der Arduino-Einheit stammen, auf die Standardausgabe gedruckt werden. und (b) erlauben Sie mir, serielle Daten an die Arduino-Einheit zu senden. Diese Skripte werden dann mithilfe der NativeProcess-API von Adobe AIR aufgerufen, um eine enge Integration zwischen der Arduino-Einheit und einem Flex @ zu ermöglicheAdobe AI application.

Meine zwei Skripte sind sehr einfach -

Hier ist mein WriteToSerial.sh-Skript:

echo $1 > $2

($ 1 ist offensichtlich meine Zeichenfolge, $ 2 ist der Speicherort der seriellen Schnittstelle - derzeit /dev/tty.usbserial-A800eIUj

Und hier ist mein ReadSerialOutput.sh-Skript:

tail -f $1

($ 1 ist der Speicherort meiner seriellen Schnittstelle, derzeit /dev/tty.usbserial-A800eIUj

Wenn ich eines dieser Skripte aufrufe (oder selbst wenn ich die Befehle direkt in die Bash-Konsole eingebe), bleibt mein Computer einfach hängen - ich kann Zeichen eingeben, aber nichts passiert, bis ich Strg + C aus dem Prozess.

Wenn ich jedoch die Arduino IDE öffne und den seriellen Monitor einschalte, danntail -f der Anschluss, schließen Sie den seriellen Monitor, und geben Sie "Test"> serielle Schnittstelle, alles funktioniert einfach großartig.

Dies deutet darauf hin, dass das Öffnen des seriellen Monitors in der Arduino IDE in gewisser Weise den seriellen Port initialisiert, was es mir wiederum ermöglicht, ihn problemlos zu überwachen. Dies wiederum deutet darauf hin, dass ich einfach keinen Initialisierungsbefehl eingebe. Ich habe jedoch tagelang nach Höhen und Tiefen gesucht und kann anscheinend nichts finden, das dieses Problem behebt.

Was ist die Lösung

Antworten auf die Frage(20)

Ihre Antwort auf die Frage