Название: пауза в таймере Отправлено: Firefox от Сентябрь 29, 2009, 22:31 есть программа, которая считывает данные с прибора при помощи платы сбора данных(ПСД), проделывает некоторые операции с данными и при необходимости отправляет единичный сигнал на плату, результат этого сигнала - загорается лампочка на приборе. Все эти действия происходят раз в пол секунды по таймеру.Но требуется чтобы лампочка не просто горела а мигала пока выполняется определённое условие. как сделать задержку в несколько мили секунд после отправки 0 сигнала на прибор, иначе этого просто не видно.
Код: MG512::MG512(QWidget *parent, Qt::WFlags flags) Название: Re: пауза в таймере Отправлено: spectre71 от Сентябрь 30, 2009, 09:36 А нафига Timer_time->start(500); в двух местах и нет ни одного stop?
Вызов Timer_time->start(500); в Work() явно не имеет смысла. Вообще из твоего описания не совсем понятно что ты хочешь добиться. Толи ты хочешь чтобы лампочка загоралась 1 раз на определенное время при каждом вызове Work(), толи чтобы лампочка мигала в процессе обработки Work() ?? 1) Если первый вариант, то можно сделать так http://www.prog.org.ru/topic_9968_0.html (http://www.prog.org.ru/topic_9968_0.html) 2) Если второй вариант(для первого тоже подходит и предпочтительней), то: - создаем дополнительный поток реализующий "мигание" лампочки - в данном потоке делаем слот на который передается команда "запустить"/"остановить" мигание(для второго варианта) или команда "моргнуть" (для первого варианта) - в начале метода Work() посылаем потоку сигнал "запустить" (для второго варианта) или "моргнуть" (для первого варианта) - в конце метода Work() посылаем потоку сигнал "остановить" (только для второго варианта) Название: Re: пауза в таймере Отправлено: kuzulis от Сентябрь 30, 2009, 09:50 Цитировать как сделать задержку в несколько мили секунд после отправки 0 сигнала на прибор, иначе этого просто не видно. ИМХО, это невозможно.. Можно сделать только десятками мс (если не говорить про сотни) :) т.е не факт !Название: Re: пауза в таймере Отправлено: spectre71 от Сентябрь 30, 2009, 10:03 Цитировать как сделать задержку в несколько мили секунд после отправки 0 сигнала на прибор, иначе этого просто не видно. ИМХО, это невозможно.. Можно сделать только десятками мс (если не говорить про сотни) :) т.е не факт !Название: Re: пауза в таймере Отправлено: Firefox от Сентябрь 30, 2009, 11:52 Что касается второго старта таймера, то это наверно остатки от какой-либо из идей как решить проблему)) вобще конечно такого нет. Решила проблему одноразовым таймером в 0,25 секунды, в слоте которого прописала отправку на прибор 0 сигнала, управляющего лампочкой. вот и получилось, что 0.25 сек лампочка горить, а 0.25 не горит. Думаю вы имели введу тоже под реализацией второго процесса. Спасибо
Название: Re: пауза в таймере Отправлено: Firefox от Октябрь 09, 2009, 21:58 Возникла ещё одна проблема такого характера. по ходу выполнения программы нужно просто поставить ожидание в 60 секунд. как это можно организовать?
Название: Re: пауза в таймере Отправлено: pastor от Октябрь 09, 2009, 22:07 Возникла ещё одна проблема такого характера. по ходу выполнения программы нужно просто поставить ожидание в 60 секунд. как это можно организовать? Выполни поиск по форуму на предмет "sleep" |