Доброе время суток!
Есть Arduino, которая шлёт постоянный поток данных на компьютер c Linux. Данные идут через /dev/ttyACM0.
Вопрос: как читать данные от неё и сохранять их в файл serial_port.data?
cat /dev/ttyACM0 > serial_port.data
tail -f /dev/ttyACM0 > serial_port.data
не помогают. Сохраняют только обрывочные данные (2-5 символов, которые передавались во время запуска команды).
UPD: Полурешение.
Во-первых, установлена задержка передачи данных с Arduino через последовательный порт, чтобы данные шли не потоком символов, а порциями. Во-вторых, в одном терминале:
tail -f /dev/ttyACM0
А в другом переодически выполняется
cat /dev/ttyACM0 >> serial_port.data
Частота выполнения cat и задержка в передаче данных от Arduino должны быть согласованы, таким образом плата посылает один пакет данных, он «запоминается» командой tail и направляется в файл командой cat. «Запомненное» командой tail очищается. И по новому кругу.
Прошу прощения за термины. Описанное — полумера. Если кто знает как сделать лучше и красивее — велкам!