Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.053 c
15-1201937868
SKIPtr
2008-02-02 10:37
2008.03.09
Помогите с выбором материнской платы


15-1201946435
иванз
2008-02-02 13:00
2008.03.09
"многострочный" TLabel


4-1184561505
MultIfleX
2007-07-16 08:51
2008.03.09
"Системная" панель ??


2-1202714361
gerda
2008-02-11 10:19
2008.03.09
dephi unix


2-1202575224
Master_Of_Puppets
2008-02-09 19:40
2008.03.09
Снова о TreeView. Проблемы с корнем.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский