Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2008, 15:25   #1
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию Отправить AT команду модему и получить ответ

Необходимо отправить следующую команду модему: ATI1 и получить его ответ в строковой переменной.

Я пытался сделать это с использованием компонента cport-3.10, но он в ответе выдавал мне ATI1 и точно так же дело обстояло когда я открывал ком порт модема функцией CreateFile.

Как быть??
Никки вне форума Ответить с цитированием
Старый 23.06.2008, 09:49   #2
Flenov
Форумчанин
 
Аватар для Flenov
 
Регистрация: 20.06.2008
Сообщений: 168
По умолчанию

Не понял, ответ есть, но не тот, что ты ожидаешь? А параметры подключения правильно указал (битность, скорость)?
Flenov вне форума Ответить с цитированием
Старый 23.06.2008, 20:39   #3
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

Иногда ответа вообще нет! а иногда вместо ответа мне выдаётся мой запрос ATI1... даже не уверен что это читается из COM порта.

Всё указано правильно. Я испробовал не один компонент и много всяких примеров пересмотрел. Ничего не выходит.. Я посылаю команду на виртуальный COM4 порт, который в программе Tellnet отвечает на все AT команды, а у меня не хочет!
Никки вне форума Ответить с цитированием
Старый 24.06.2008, 17:15   #4
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
Вопрос

Пишу так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
    COM:THandle;
    DCB:TDCB;
    TimeOuts:TCommTimeouts;
    N,N2:Cardinal;
    S:String;
begin
    COM:=CreateFile('COM4',GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0);
    SetupComm(COM,255,255);
    GetCommState(COM,DCB);
    DCB.BaudRate := 9599;
    DCB.ByteSize := 8;
    DCB.Parity := NoParity;
    DCB.StopBits := OneStopBit;
    SetCommState(COM,DCB);
    GetCommTimeouts(COM,TimeOuts);
    TimeOuts.ReadIntervalTimeout:=MAXDWORD;
    TimeOuts.ReadTotalTimeoutMultiplier:=0;
    TimeOuts.ReadTotalTimeoutConstant:=0;
    TimeOuts.WriteTotalTimeoutMultiplier:=0;
    TimeOuts.WriteTotalTimeoutConstant:=0;
    SetCommTimeouts(COM,TimeOuts);
    WriteFile(COM,'AT',2,N,nil);
    ReadFile(COM,S,255,N,nil);
    CloseHandle(COM);
    Label1.Caption:=S;
end;
и не работает... а в Label1 должен попасть ответ, прочитанный с ком порта... а там пусто!
Никки вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ответ клиенту... prizrak1390 Работа с сетью в Delphi 8 22.05.2008 11:34
F.A.Q(Вопрос-Ответ) ben95 Помощь студентам 17 07.01.2008 13:26
Ответ LeoN Общие вопросы Delphi 0 07.09.2007 20:02
g61 (вопрос/ответ) g61 Свободное общение 2 04.12.2006 10:05