COM-Modem (Как корректно писать-читать)

Модератор: Модераторы разделов

Аватара пользователя
lava
Сообщения: 155
ОС: archer

COM-Modem

Сообщение lava »

Здравствуйте.
Интересует пара конкретных ответов на пару конкретных вопросов.

1. Имеется модем на ttyS0. Надо правильно послать ему, например, AT и прочитать ответ.
В запале написанный код в принципе сработал, но или в buf записывается фигня какая-то или из цикла не выходит. (на cat видно, что и команда пришла и ответ дан)
char port[30];

sprintf( port, "/dev/ttyS0" );

int fd = open( port, O_RDWR | O_NOCTTY | O_NDELAY );

if ( fd < 0 )
{
printf( "\nError while opening %s for read and write\n", port );
return -1;
}
else
printf( "%s successfully opened\n", port );

int n;

char at[32];
char buf[32];

sprintf( at, "AT\n" );

n = write( fd, at, strlen( at ) );
if ( n < 0 )
printf( "Error while \"%s\" write\n", at );
else
printf( "\"%s\" successfully sent (%d)\n", at, n );

do
{
n = read( fd, buf, 31 );
}
while ( n < 0 );

printf( "For \"%s\" reply is: \"%s\"\n", at, buf );

Помогите сделать на 100%. Проектные сроки поджимают.

2. Интересует команда, которая выполнит строку в шелле. Или только через доп. файл, который - скрипт ("#! sh\n...") и запускать семейством exec.

3. Посоветуйте какую книгу, где можно было бы посмотреть инфу такого рода, справочник команд (MSDN - единственное, по чем скучаю). /* В верхнем топике ссылки на книги смотрел, но первая не сработала, а там только на покупку еще ссылки, но мне хотелось бы хоть почитать и оценить их.

Заранее спасибо.
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: COM-Modem

Сообщение vadiml »

найди исходники mgetty1.1.35-Feb22.tar.gz (эти кажется последние), там помимо самого mgetty есть примеры работы с ним и портами, в том числе и для шела, перла.

Я писал/читал ttyS0/S1/... при помощи vgetty, когда понадобилось управление голосовыми функциями модема

зы если это тебе тоже надо, обращаю внимание, что rockwell стандарт и IS101/V253 отличаются

и еще - на Perl'e есть модуль
Device::Modem - a Perl class to interface generic modems (AT-compliant)
который практически одинаково работает и в линуксе, и в винде
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
lava
Сообщения: 155
ОС: archer

Re: COM-Modem

Сообщение lava »

Спасибо за идею про mgetty. Уже немного посмотрел, но примеры и многое в самой программе реализуется через sh, а мне нужен С. В принципе, еще не все проверил, пока отложил проблемную задачу - делаю то, что по-проще.
Я действительно забыл указать, что использую C++ + Qt embedded и решение мне надо именно внутри программы (хотя может и придется вынести в скрипт, но это нежелательно).
Спасибо сказали:
Shade
Сообщения: 40
ОС: ArchLinux

Re: COM-Modem

Сообщение Shade »

Ну вообще-то много раз уже обсуждалось. Например,
COM-порт
Там исходник есть.
Спасибо сказали:
Аватара пользователя
lava
Сообщения: 155
ОС: archer

Re: COM-Modem

Сообщение lava »

Спасибо за ответы. Оказалось, что моя программа работает (на деле в ней есть еще кой-какая инициализация модема), не работал модем.

Спасибо за ссылку - исходник взял. Сам не нашел потому, что искал по всяким tty, а COM не подумал набрать.

Не могу найти, как закрыть тему, а это уже можно сделать.
Спасибо сказали: