Главная страница
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.015 c
15-1201902190
Kostafey
2008-02-02 00:43
2008.03.09
С днем рождения ! 2 февраля


15-1202135340
alsov
2008-02-04 17:29
2008.03.09
Сортировка точек


15-1200865358
TStas
2008-01-21 00:42
2008.03.09
Беда с флешкой


15-1201712107
AlexanderMS
2008-01-30 19:55
2008.03.09
Сжатие изображений.


15-1202053496
Snek
2008-02-03 18:44
2008.03.09
Гибкая автаризация в программе.