2013-07-12 12 views
3

У меня есть устройство, где обновление программного обеспечения выполняется путем загрузки файла через xmodem.Автоматизация загрузки файла xmodem

Я смог сделать это двумя способами, используя пакет lrzsz (http://ohse.de/uwe/software/lrzsz.html).

1) Используя экран

screen /dev/tty.myserialdevice 115200 

, а затем

^A:exec !! sz -X file.bin 

или

2) с использованием CU

cu -l /dev/tty.myserialdevice -s 115200 

, а затем

~+lsz -X file.bin 

Теперь я хотел бы написать сценарий (желательно скрипт ruby ​​или bash) для автоматизации загрузки файла.

Есть ли способ передать файл на экран или cu или использовать стандартный ввод? Когда я попытался написать сценарий, мне удалось только открыть соединение. Но даже тогда у меня были проблемы, чтобы правильно закрыть это соединение.

+0

+1 только для использования xmodem, что я использовал в прошлый раз примерно в 1993 году на сайтах FIDO и BBS ...;);) – jm666

+0

Ну, я бы не использовал его, если бы мне не пришлось :(Но спасибо, что немного облегчает боль;) – benjay

+1

Попробуйте команду 'ожидать'. Google для примеров. «Ожидание» позволяет писать команды в скрипт, как обычно вы их вводите, поэтому с правильно построенным «ожидающим сценарием» вы можете сбежать из 'cu' с' ~ 'и отправить правую' sz' команду. – jm666

ответ

4

Не уверен, что у вас все еще есть эта проблема, но мне недавно пришлось собрать что-то для аналогичной ситуации.

Я использовал экран для автоматизации этой части, так как он имеет некоторые параметры командной строки для запуска в фоновом режиме. Во-первых, я создаю отдельностоящий сеанс экрана, как это:

screen -d -m /dev/tty.myserialdevice 115200 

Тогда я могу ссылаться на мою созданную сессию с -P0 вариант, и дать ему команду, выполняемую с -X, который в данном случае является чтобы отобразить сам, чтобы начать передачу файла xmodem.

screen -p0 -X exec \!\! sz -X filetosend 

Я заметил в других местах в Интернете, что. \! \! также иногда используется, поэтому имейте это в виду, чтобы попытаться, если у вас все еще есть проблемы.

+0

Точно я искал, спасибо! – benjay