[Delphi] Ответ от модема после посылки АМ команды

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by bertys, 21 Feb 2012.

  1. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, подскажите как мне вывести в мемо ответ от модема:

    Вот код отправки АТ команды:

    PHP:
    procedure SendSMS(AComPortintegerAMsgStringANumTelString);
    var
      
    hFileTHandle;

      
    procedure WriteStr(AStrString); //пишет в порт переданную строку
      
    var
        
    LWritedCardinal;
      
    begin
        
    //Пишем в порт
        
    WriteFile(hFilePAnsiChar(AStr)^, Length(AStr), LWritednil);
      
    end;


    begin
      
    //открываем порт
      
    hFile := Windows.CreateFile(PChar('\\.\COM' IntToStr(AComPort)), GENERIC_READ or GENERIC_WRITE0nilOPEN_EXISTING00);

      
    //если открылся
      
    if (hFile <> INVALID_HANDLE_VALUEthen
      begin
        
    try
          
    //устанавливаем текстовый режим
          
    WriteStr('AT+CMGF=1' #$D#$A);
          //вводим номер в формате "+79xxxxxxxxx"
          
    WriteStr('AT+CMGS="'+ANumTel+'"' #$D#$A);
          //вводим текст сообщения, только латиница
          
    WriteStr(AMsg #$D#$A#$1A);
        
    finally
          
    //закрываем порт
          
    Windows.CloseHandle(hFile);
        
    end;
      
    end;
    end;

    Как мне прочитать ответ, зарание спасибо
     
  2. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    Читайте либо синхронно либо асинхронно из порта с помощью функции ReadFile. Подробнее про неё можно почитать в документациях в интернете.

    P.S. Если по делу, то наверное не стоит этим заниматься, если Вы не знаете как вывести ответ в Memo. Ну это не моё дело. Удачи. :)
     
  3. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    я знаю про эту функцию, подскажи плз как правильно ее записать в данном случае, у меня чет не выходит, буду благодарен
     
  4. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    обьясните пожалуйста, где что писать на месте переменных в этой строке:

    R e a d F i l e ( h F i l e , b u f , 5 , N , n i l )

    хФайл- это я так понял СОМ порт, а остальное?
     
  5. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    аууу =) люди, помогите.
    Как правильно заполить ридфайл
     
  6. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    ReadFile(Файл из которого читаем, Переменная в которую записываем, Кол-во считываемых байт, Кол-во прочитанных, Указатель асинхронности);

    P.S. Как-то так, типо на русском языке)