Я пытаюсь разработать простое приложение Qt. После того, как я нажму кнопку «СТАРТ», приложение должно непрерывно извлекать данные с устройства (используя сторонние библиотеки) и пересылать их как можно скорее по последовательному соединению.
(Уродливое) программное обеспечение, которое я использовал до сих пор, было консольным приложением, которое запускалось последовательно и получало кадры данных, как только они были доступны хостом, используя следующий цикл:
while(1)
{
[...]
while( MyClient.GetFrame().Result != Result::Success )
{
Sleep( 200 );
std::cout << ".";
}
[... pack and send on serial]
}
Мне было интересно, какой более удобный способ реализовать это в Qt, чтобы поддерживать отзывчивость графического интерфейса, а также с минимально возможной задержкой между getFrame и функцией последовательной записи.
Должен ли я использовать срабатывающий по таймеру SLOT? Пространство имен QtConcurrent? QRunnable? Каковы основные преимущества и недостатки каждого из этих подходов?
Спасибо за вашу помощь!