Программирование модемов

Активный вызов удаленного модема



Активный вызов удаленного модема

Для активного вызова модемом абонента надо послать модему соответствующую AT-команду. Например, для набора номера 926-76-34 модему посылается следующая команда:

AT DP 926-76-34 <CR>

Восприняв эту команду, модем сразу снимает трубку, набирает номер и пытается установить связь с удаленным модемом. Результат выполнения этой команды можно считать через COM-порт.

Ниже приведен фрагмент кода, который передает модему символы, принятые от клавиатуры и отображает на экране символы, принятые от модема:

while( 1 ) { if( kbhit() ) {

// если нажата клавиша клавиатуры, считываем ее код

key = getch();

// по нажатию клавиши Esc выходим из данной функции

if( key == 27 ) exit(0);

// если пользователь нажал Enter, передаем модему // символ перевода строки и возврата каретки

if( key == '\r' )

// посылаем символ в COM-порт com_out( com_adr, 0xd );

else {

// отображаем символ на экране putch( key );

// посылаем символ в COM-порт com_out( com_adr, key ); } }

// если получены данные от модема, отображаем их на экране

if( from_modem( com_adr, &ch_in ) == 0 ) putch( ch_in ); }

Если модем ответил сообщением CONNECT, значит, он удачно произвел соединение и переключился в режим обмена данными. Теперь для передачи данных удаленному модему их надо просто передавать в COM-порт, к которому подключен модем. Передача и прием данных выполняются так же, как передача команд и прием ответных сообщений от модема. Вы даже можете использовать для этого те же функции.



Содержание раздела