Russian Qt Forum

Qt => Вопросы новичков => Тема начата: billidean от Январь 29, 2016, 21:40



Название: Проблемы с двумя таймерами и Езернетом
Отправлено: billidean от Январь 29, 2016, 21:40
Добрый день всем.
Такая проблема с двумя таймерами:
-первый таймер кидает запрос по Езернету с периодом Х (например 420 мс) - он служит для контроля связи с устройством.
-второй таймер кидает запрос по Езернету на то же самое устройство с периодом Y (например 100 мс) - он ведет периодический информационный обмен с устройством.

Обработка принимаемых данных от обоих запросов производится в одном слоте.

иногда получается так, что один из таймеров "замирает", это я сужу по снифферу, т.е. один из этих обменов идет дальше, а второй перестает.
Я так понимаю, что происходит коллизия при выдаче запросов... или ??????

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

Что можете посоветовать???


Название: Re: Проблемы с двумя таймерами и Езернетом
Отправлено: Old от Январь 29, 2016, 21:44
Странный контроль. Вы получаете отзыв от устройтва каждые 100 мс, но живость его хотите дополнительно проверять раз в 400 мс.
Если вы перестали получать ответы раз в 100 мс, то через 400 мс он уже четыре раза как не ответит.  ???


Название: Re: Проблемы с двумя таймерами и Езернетом
Отправлено: billidean от Январь 29, 2016, 22:04
Может быть это и не правильно, НО ока вопрос в том, что при постоянном коннекте в устройством обработка ответа от запросов из одного из таймеров пропадает.
Я понимаю, что один из запросов просто теряется, и ответ на него просто не приходит... и вся конструкция рушится...
Но пока не могу понять, как все сделать правильно.


Название: Re: Проблемы с двумя таймерами и Езернетом
Отправлено: Old от Январь 29, 2016, 22:08
Часто, устройства не предполагают получение нового запроса, пока выполняется текущий. У вас возможна такая ситуация. Вы отправляете рабочий запрос (который раз в 100 мс), потом срабатывает контрольный таймер и вы отправляете контрольный запрос, а железка его просто глотает.


Название: Re: Проблемы с двумя таймерами и Езернетом
Отправлено: Bepec от Январь 29, 2016, 22:28
Железяка занята может быть. Если же у вас железяка представляет полноценный пк, данный комментарий отпадает :)


Название: Re: Проблемы с двумя таймерами и Езернетом
Отправлено: billidean от Январь 29, 2016, 22:55
Железяка - некий датчик.
На счет занятости железяки - понял... может быть так и происходит...буду разбираться.
Спасибо за помощь.