Активный вызов удаленного модема
Активный вызов удаленного модема
Для активного вызова модемом абонента надо послать модему соответствующую 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-порт, к которому подключен модем. Передача и прием данных выполняются так же, как передача команд и прием ответных сообщений от модема. Вы даже можете использовать для этого те же функции.