Пытаюсь реализовать диалог с GSM-модемом, подключенным в (виртуальный) COM-порт.
Диалог имеет примерно такой вид:
code_7980.txt
Время между запросом и ответом не фиксировано, и, теоретически, может меняться в зависимости от запроса. Хотелось бы организовать максимально универсальную схему, "общающуюся" с модемом таким образом. То есть общение с модемом происходит через вызов метода doChat некого мультиэлемента, которму передаются строка-запрос и ожидаемый ответа (или "шапка" ответа - e.g. "+CGMI"), и получения событися либо onReply, либо onError.
Общение должно идти асинхронно, не "замораживая" основной поток программы. Вот мои потуги на эту тему:
code_7981.txt
(В схеме применён "потусторонний" (с) компонент ComAsync v1.5 от Wolfik-а).
Внимание, вопрос: что я делаю не так, и как надо делать?
Ответов: 5446
Рейтинг: 323
|
|||
карма: 1 |
| ||
файлы: 2 | code_7980.txt [159B] [409], code_7981.txt [16.6KB] [530] |