Bash, последовательный ввод / вывод и Arduino
Итак, я немного над головой и чувствую, что я очень близок к решению, но оно пока не работает. Вот моя ситуация:
Я работаю с микроконтроллером Arduino и пытаюсь написать два сценария Bash (прямо сейчас работающих в Mac OS X 10.6), которые будут (а) печатать все последовательные данные, поступающие с блока Arduino, на стандартный вывод, и (б) позвольте мне отправлять серийные данные в блок Arduino. Затем эти сценарии будут вызываться с помощью API-интерфейса NativeProcess Adobe AIR, чтобы обеспечить тесную интеграцию между модулем Arduino и Flex.Adobe AIR приложение.
Мои два сценария очень просты -
Вот мой скрипт WriteToSerial.sh:
echo $1 > $2
($ 1, очевидно, моя строка, $ 2 - местоположение последовательного порта - в настоящее время /dev/tty.usbserial-A800eIUj)
А вот мой скрипт ReadSerialOutput.sh:
tail -f $1
($ 1 - это местоположение моего последовательного порта, в настоящее время /dev/tty.usbserial-A800eIUj)
Когда я вызываю любой из этих сценариев (или даже если я просто набираю команды непосредственно в консоли Bash), мой компьютер просто зависает - я могу печатать символы, но ничего не происходит, пока яCtrl + C вне процесса.
Однако, если я открою IDE Arduino и включу Serial Monitor, тоtail -f
порт, закройте последовательный монитор, а затем повторить «тест»> последовательный порт, все работает просто замечательно.
Это наводит меня на мысль, что открытие Serial Monitor в Arduino IDE каким-то образом инициализирует последовательный порт, что, в свою очередь, позволяет без проблем подключить его. Это, в свою очередь, подсказывает мне, что я просто не могу ввести какую-то команду инициализации. Тем не менее, я искал высоко и низко в течение нескольких дней и не могу найти ничего, что решает эту проблему.
Каково решение?