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