Итак, я немного над головой и чувствую, что я очень близок к решению, но оно просто пока не работает. Вот моя ситуация:
Я работаю с микроконтроллером 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
порт, закройте последовательный монитор, а затем выведите «test»> последовательный порт, все работает просто замечательно.
Это наводит меня на мысль, что открытие Serial Monitor в Arduino IDE каким-то образом инициализирует последовательный порт, что, в свою очередь, позволяет без проблем подключить его. Это, в свою очередь, подсказывает мне, что я просто не могу ввести какую-то команду инициализации. Тем не менее, я искал высоко и низко в течение нескольких дней и не могу найти ничего, что решило бы эту проблему.
Какое решение?