Чтение параметра, правка алгоритма |
Здравствуйте, гость ( Вход | Регистрация )
Чтение параметра, правка алгоритма |
AD |
3.6.2009, 13:27
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Делаю имитатор прожектора. Есть следующие вещи: задается количество циклических перемещений прожектора (из крайне правого положения в крайне левое и обратно).
Алгоритм следующий: виджет-вкладка в котором рисуются все нужные кнопки переопределен вот так:
внутри класса есть следующие переменные:
Слоты запуска циклических перемещений по каждой оси и функции чтения:
Далее реализация. Вот так соединяется слот с сигналом и реализация слота:
В слоте происходит следующее: 1) проверяется текущее положение прожектора 2) если он не в крайне правом положении, переводим его в это положение 3) далее запускается цикл перехода из крайне правого в крайне левое и обратно 4) счетчик соответственно уменьшается
Проблема в том, что при заходе в функцию readAzimuth, там он зацикливается. Если делать все под отладчиком, то при поставке точек останова, алгоритм срабатывает. Вот функции главного окна, которые считывают и записывают в порт:
Сможете помочь решить проблему? Я уже не знаю как заставить отрабатывать так, чтобы при запуске без отладчика и точек останова, алгоритм срабатывал без зацикливания. |
|
|
BRE |
3.6.2009, 20:58
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Сильно в алгоритм не вникал, вот что бросилось сразу в глаза:
Отдельно эта функция проверялась, она работает? Есть классная штука для отладки это ЛОГИ. Если поставить много qDebug в нужных местах с выводом необходимых параметров, то разобраться можно в разы быстрее. |
|
|
Litkevich Yuriy |
3.6.2009, 21:18
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Если делать все под отладчиком, то при поставке точек останова, алгоритм срабатывает. скорее всего, ты где-то не учитываешь, что данные должны накопится. Т.е. существует медленный асинхронный процесс (например тот же коммуникационный порт). И при отладке по шагам данные успевают накопиться, т.к. программа выполняется очень медленно. А в нормальном режиме она выполняется быстрее чем этот самый асинхронный процесс.
|
|
|
AD |
4.6.2009, 9:14
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
|
|
|
Текстовая версия | Сейчас: 15.1.2025, 2:30 |