Russian Qt Forum
Ноябрь 23, 2024, 11:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Очередь запросов  (Прочитано 8800 раз)
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #15 : Декабрь 08, 2016, 14:25 »

Что если попытаться "сузить" так
...
Все примерно так (только лучше Подмигивающий) и работает. И цикл событий для очереди один. Все у меня работает замечательно.
Я же решал один нюанс - поставить в очередь синхронный вызов нереентерабельной  функции. Видимо, это невозможно, по крайней мере, я пока способа не нашел. Поэтому я сделал просто - если вызов от клиента поступает запрос до удаления его предыдущего запроса, то просто игнорирую его. Обойдется, в рамках моей задачи это допустимо.

А в асинхронном режиме можно сделать вообще замечательно - процесс передачи и получения данных в шину никак не связан. При прочтении данных из порта посылать сигнал очереди, что шина свободна. И пожалуйста - передавай следующий запрос.
Но извиняйте - надежно связать запрос с ответом, если используется не Modbus TCP, вы не сможете. Разве что с высокой степенью вероятности (по адресу устройства и номеру функции).
« Последнее редактирование: Декабрь 08, 2016, 14:32 от sergek » Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 22.