как отправить запросы модему

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Student :), 3 Feb 2010.

  1. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    Добрый вечер!
    У меня возник вопрос с запросами к модему с помощью компонента CPort пишу на Delphi.
    как отправить иниц. модему ? отправляю так

    PHP:
    procedure TForm1.initClick(SenderTObject);
    VAR

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


    ComPort.ReadStr(DataComPort.InputCount);


    end;

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

    init_Array[0]:='AT';
    init_Array[1]:='AT&V';
     
    #1 Student :), 3 Feb 2010
    Last edited: 3 Feb 2010
  2. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    ответ приходит

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

    end;

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

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Ну отправляй/читай их в цикле, в чем проблема?
     
    1 person likes this.
  4. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    А нафига юзать вообще работу с портом таким образом?
    Тебе особо не важен тут битрейт, потому что дрова модема сами всё настраивают.

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

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    спасибо! но я хотел бы через компоненту
    пишу так
    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 запрос со всем массивом :(
    а мне надо чтоб отправился первый запрос получили ответ , потом второй и так далее
     
  6. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Ну так получай ответ, не хочеш знать что в ответе ну и не знай но получить его ты обязан