Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.09;
Скачать: CL | DM;

Вниз

Зарпет обработки события   Найти похожие ветки 

 
olega ©   (2008-02-13 14:15) [0]

Добрый день! Для работы с GSM-модемом я использую компонент TBComPort 2.10 (http://www.delphisources.ru/pages/sources/system/2005_year/bcom_port.html). В случае если на модем приходит СМС, он выдает в СОМ-порт строку "+CMTI: "MT",1". В компоненте есть прерывние OnRxChar, которое вызывается в случае появления во входном буфере СОМ-порта данных. Его обработчик - это функция синхронного чтения порта. Таким образом, когда приходит СМС, программа автоматом улавливает этот момент и считывает указанную выше строку.
Для дальнейшей работы мне необходимо считать СМС. Для этого я посылаю команду "AT+CMGR=1". Для контроля правильности ее выполнения необходимо проверять ответы от модема. НО с прерыванием это делать не удобно. Как можно его временно запретить, чтобы считывать ответы от модема "вручную", а когда обработаю пришедшую СМС, востановить прерывание и ожидать новой СМС?


 
Семеныч   (2008-02-13 14:35) [1]

procedure TForm1.BComPort1RxChar(...); // Обработчик OnRxChar
begin
 BComPort1.OnRxChar := nil;
 try
   ... // Обработка
 finally
   BComPort1.OnRxChar := BComPort1RxChar;
 end;
end;


 
DiamondShark ©   (2008-02-13 14:50) [2]


> НО с прерыванием это делать не удобно.

Это почему же?
Дубовую state-machine трудно организовать?

...
FState: integer;

procedure TBComPort1.OnRxChar;
begin
 case FState of
 ...
 17: begin // состояние "ждать уведомления от модема"
    ЧитатьКомандуОтМодкма();
    if команда = "+CMTI: "MT",1" then
    begin
      ПослатьКомандуМодему("AT+CMGR=1");
      FState := 18;
    end;
   ...
 end;
 18: begin // состояние "ждать ответа на "AT+CMGR=1""
    // читать и чего-то делать с ответом
    FState := 38;
 end
 ...
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2008.03.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
3-1192953243
Evgeny
2007-10-21 11:54
2008.03.09
Ошибка SQL запросе


2-1202754186
Patric
2008-02-11 21:23
2008.03.09
Автоматизация процесса


2-1203002402
webpauk
2008-02-14 18:20
2008.03.09
Handle


2-1202642822
oleg_teacher
2008-02-10 14:27
2008.03.09
Stringgrid


15-1201845167
oxffff
2008-02-01 08:52
2008.03.09
The 2008 Delphi Исследование