Хочу элементарную программку для работы с модемом через COM-порт,
которой при запуске даешь 2 параметра:
1. AT-команду
2. имя порта (например, "/dev/ttyS0")
Она запускается, кидает в модем AT-команду, ждет ответ модема и выдает его на экран. Все.
Может есть такое в природе?
А если нет... Знатоки С, может есть уже кто-то похожее делал? Или может посоветовать что почитать? С примерами!
Ибо из шелл-скриптов, с помощью echo "ati" > /dev/ttyS0 это не всегда удается сделать. Иногда все ок, а иногда какой-то мусор и дубляж команд в порт пихается. Да и мониторить ответы модема посредством "cat /dev/ttyS0 >> log" - ИМХО извращение.
>Хочу элементарную программку для работы с модемом через COM-порт,
>которой при запуске даешь 2 параметра:
>1. AT-команду
>2. имя порта (например, "/dev/ttyS0")
>Она запускается, кидает в модем AT-команду, ждет ответ модема и выдает его
>на экран. Все.
>Может есть такое в природе?
>А если нет... Знатоки С, может есть уже кто-то похожее делал? Или
>может посоветовать что почитать? С примерами!
>Ибо из шелл-скриптов, с помощью echo "ati" > /dev/ttyS0 это не всегда удается сделать. Иногда все ок, а иногда какой-то мусор и дубляж команд в порт пихается. Да и мониторить ответы модема посредством "cat /dev/ttyS0 >> log" - ИМХО извращение.мб поможет chat?
>>Хочу элементарную программку для работы с модемом через COM-порт,
>>которой при запуске даешь 2 параметра:
>>1. AT-команду
>>2. имя порта (например, "/dev/ttyS0")
>>Она запускается, кидает в модем AT-команду, ждет ответ модема и выдает его
>>на экран. Все.
>>Может есть такое в природе?
>>А если нет... Знатоки С, может есть уже кто-то похожее делал? Или
>>может посоветовать что почитать? С примерами!
>>Ибо из шелл-скриптов, с помощью echo "ati" > /dev/ttyS0 это не всегда удается сделать. Иногда все ок, а иногда какой-то мусор и дубляж команд в порт пихается. Да и мониторить ответы модема посредством "cat /dev/ttyS0 >> log" - ИМХО извращение.
>
>мб поможет chat?1. minicom, cu
2.
fd = open("/dev/ttyS0", O_RDWR...);
tcsetattr(fd, ...); // set parameters port
write(fd, ...);
read(fd, ...);
close(fd);
>1. minicom, cuЗаставить работать cu в неинтерактивном режиме было бы идеальным решением.
Но я не знаю как. Вы могли бы пример привести?>2.
>fd = open("/dev/ttyS0", O_RDWR...);
>tcsetattr(fd, ...); // set parameters port
>write(fd, ...);
>read(fd, ...);
>close(fd);Спасибо!
>Заставить работать cu в неинтерактивном режиме было бы идеальным решением.
>Но я не знаю как. Вы могли бы пример привести?Утилита expect. Читал. Сам не пользовался - делает из интерктивной программы неитерктивную. Правда я бы на С быстрее накатал бы ;-)
>>Заставить работать cu в неинтерактивном режиме было бы идеальным решением.
>>Но я не знаю как. Вы могли бы пример привести?
>
>Утилита expect. Читал. Сам не пользовался - делает из интерктивной программы неитерктивную.
>Правда я бы на С быстрее накатал бы ;-)Я к сожалению в С не силен.
>>>Заставить работать cu в неинтерактивном режиме было бы идеальным решением.
>>>Но я не знаю как. Вы могли бы пример привести?
>>
>>Утилита expect. Читал. Сам не пользовался - делает из интерктивной программы неитерктивную.
>>Правда я бы на С быстрее накатал бы ;-)
>
>Я к сожалению в С не силен.
http://www.easysw.com/~mike/serial/serial.html