Вверх ↑
Ответов: 5446
Рейтинг: 323
#1: 2007-12-19 21:27:03 ЛС | профиль | цитата
Пытаюсь реализовать диалог с GSM-модемом, подключенным в (виртуальный) COM-порт.
Диалог имеет примерно такой вид:
code_7980.txt

Время между запросом и ответом не фиксировано, и, теоретически, может меняться в зависимости от запроса. Хотелось бы организовать максимально универсальную схему, "общающуюся" с модемом таким образом. То есть общение с модемом происходит через вызов метода doChat некого мультиэлемента, которму передаются строка-запрос и ожидаемый ответа (или "шапка" ответа - e.g. "+CGMI"), и получения событися либо onReply, либо onError.

Общение должно идти асинхронно, не "замораживая" основной поток программы. Вот мои потуги на эту тему:
code_7981.txt
(В схеме применён "потусторонний" (с) компонент ComAsync v1.5 от Wolfik-а).

Внимание, вопрос: что я делаю не так, и как надо делать?
карма: 1

0
файлы: 2code_7980.txt [159B] [409], code_7981.txt [16.6KB] [530]