Пишу программу, которая должна забирать данные с приборов по
последовательному порту (8 цифровых датчиков веса производства HBM, если
это важно). Для общения с портом используется QextSerialPort. Чтобы
ожидание ответов не тормозило всю программу, создан второй поток
(производный от QThread). В нём кроме порта также создаётся QTimer,
сигнал от которого собственно и вызывает функции опроса. Оба объекта
создаются уже в функции run(), которая, судя по документации, и должна
выполняться в отдельном потоке. Заканчивается она вызовом exec(), чтобы
сигналы от таймера обрабатывались. И всё было бы нормально, поток когда
надо запускается, завершается, но ожидание ответов всё равно тормозит
весь процесс. В чём может быть причина, и как это исправить? Попробовал
собрать эту же программу под оффтопиком (XP SP2) - там не тормозит, всё
чудесно работает. QT 4.3.0 ставил из исходников в /usr/local (если что
не так, могу и пересобрать), система - Sarge. Если пройдут вложения - в
них исходник этого модуля.
------------------------------------------------------------------------
#include "serial.h"
int port_fd;
//int must_stop;
//int f_rx, f_timeout;
//u_int8_t msg1 [100];