Как обрабатывать QRY^Q02 с помощью ReceiveApplication в HAPI?

Я разрабатываю приложение, которое взаимодействует с химическими анализаторами, и мне нужно работать с сообщениями QRY^Q02 и DSR^Q03.

Схема связи следующая:

Analyzer                            Soft

                 QRY^Q02
   |--------------------------------->|
                 QCK^Q02
   |<---------------------------------|

                 DSR^Q03
   |<---------------------------------|
                 ACK^Q03
   |--------------------------------->|

Я реализовал ReceiveApplication для обработки входящих сообщений и генерации ответов.

У меня проблема в том, что я не знаю, как отправить сообщение DSR^Q03 после ответа на QCK^Q02.

Одним из вариантов является запуск отдельного потока из «processMessage», который будет отправлять ответ на запрос. Я думаю, что это не лучший подход для обработки запроса по нескольким причинам.

Кто-нибудь знает, как отправить DSR^Q03 после ответа на QCK^Q02?

Если кто-нибудь может мне помочь, я буду очень признателен.

Заранее спасибо. С наилучшими пожеланиями.


person sallegri    schedule 17.01.2014    source источник
comment
Вероятно, это зависит от вас и вашего анализатора, как вы с этим справитесь и как или когда анализатор будет готов это принять. Достаточно ли быстр анализатор, чтобы принять ответ сразу после него, нужен ли отдельный порт/соединение, можете ли вы принимать дальнейшие запросы во время подготовки ответа и т.д.   -  person sqlab    schedule 18.01.2014
comment
Привет @sqlab, спасибо за ответ. Анализатор использует только один порт, и я не знаю, достаточно ли он быстр. Мой вопрос больше ориентирован на проблему программирования. Есть ли способ в HAPI обработать ответ на запрос? Я имею в виду, после ответа на QCK^Q02, как я могу отправить анализатору сообщение DSR^Q03?   -  person sallegri    schedule 20.01.2014
comment
Что говорит против использования .sendAndReceive(yourDSR^Q03) в соединении, где вы получили запрос, если оно все еще открыто? В противном случае вам придется инициировать новое соединение.   -  person sqlab    schedule 21.01.2014


Ответы (1)


Я попытался использовать Analyzer System со сторонним сетевым инструментом, чтобы протестировать этот вариант использования, и это хорошая работа.

И после отправки QCK^Q02 вы можете отправить DSR^Q03 напрямую (без ожидания, без нового потока, просто сделайте это напрямую). Просто отправляйте по одному. Анализатор примет информацию.

Я надеюсь это тебе поможет.

person LanPst    schedule 23.04.2014