PDA

Просмотр полной версии : как отправить запросы модему


Student :)
03.02.2010, 23:11
Добрый вечер!
У меня возник вопрос с запросами к модему с помощью компонента CPort пишу на Delphi.
как отправить иниц. модему ? отправляю так


procedure TForm1.initClick(Sender: TObject);
VAR

Data: string;
begin
init_Array[0]:='AT';
init_Array[1]:='AT&V';
ComPort.WriteStr(nit_Array[0]+#13#10); // send test command


ComPort.ReadStr(Data, ComPort.InputCount);


end;


как отправить след команду? после ожидания ответа от первой?
создаю массив команд например

init_Array[0]:='AT';
init_Array[1]:='AT&V';

Student :)
03.02.2010, 23:31
ответ приходит

procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
Str: String;
begin
ComPort.ReadStr(Str, Count);
showmessage(Str);

end;

а как запросить след команду с массива?

razb
04.02.2010, 02:51
Ну отправляй/читай их в цикле, в чем проблема?

slesh
04.02.2010, 10:51
А нафига юзать вообще работу с портом таким образом?
Тебе особо не важен тут битрейт, потому что дрова модема сами всё настраивают.

Юзай стандартную работу с файлами, указав порт.
Типа:
CreateFile('COM4', ***** и потом WriteFile и ReadFile когда надоест, то CloseHandle
Итд. короче заюзать можеш любую функцию открытия файла, главное открывать файл с правами RW

Student :)
04.02.2010, 16:08
спасибо! но я хотел бы через компоненту
пишу так
procedure TForm1.initClick(Sender: TObject);
VAR
n:integer;
begin
init_Array[0]:='AT';
init_Array[1]:='AT&V';
init_Array[2]:='AT1';
init_Array[3]:='AT2';
For n:=0 to length(init_Array)-1 do
Begin
// showmessage(init_Array[n]);
ComPort.WriteStr(init_Array[n]+#13#10); // send test command

end;

если так делаю то отправляеться 1 запрос со всем массивом :(
а мне надо чтоб отправился первый запрос получили ответ , потом второй и так далее

POS_troi
04.02.2010, 16:25
Ну так получай ответ, не хочеш знать что в ответе ну и не знай но получить его ты обязан