Страница 1 из 1

Queue при сборе данных

Добавлено: 04 апр 2017, 12:25
mandd
Стараюсь подлатать слабые места своей программки по сбору данных. Данные получаю через DAQ.
Хочется реализовать остановку сбора данных по нажатию кнопки Стоп. Сейчас это работает, но с очень большим опозданием. Если учесть ещё что частота опроса порой может составлять порядка 10 с, то порой вообще не понимаешь получила ли программа от тебя команду.

Сначала думал это реализовывается через параллельный цикл имеющий структуру Event, но она не моментально реагировала и эффекта нужного так и не получил (может и я не до конца правильно реализовал).

Наткнулся на Очереди. Свою схему реализовал следующим образом, но программа вообще перестала работать, но ошибки не выдает, просто сбор данных не происходит. Подскажите знающие люди где что напутал!


Изображение

Re: Queue при сборе данных

Добавлено: 04 апр 2017, 12:40
Artem.spb
изображения должны быть на форуме
mandd писал(а):Если учесть ещё что частота опроса порой может составлять порядка 10 с
это смущает в UI интерфейсе. Ясен пень всегда будете ждать секунд по 10.

И что ЭТО?
dfb6702ee21c.png

Re: Queue при сборе данных

Добавлено: 04 апр 2017, 12:57
mandd
И что ЭТО?
во время написания кода в свое время видимо перестраховался)

Получается при опросе в 10 с нельзя моментально остановить программу, придется ждать окончания итерации?
А с чем может быть связана проблема со сбором данных - до установки очередей работало всё отлично?

Re: Queue при сборе данных

Добавлено: 04 апр 2017, 13:02
Artem.spb
mandd писал(а):Получается при опросе в 10 с нельзя моментально остановить программу, придется ждать окончания итерации?
а вы что ожидаете? можно извратиться убийством задачи в параллельном цикле, тогда цикл опроса вывалится с ошибкой. Но не уверен, что это хорошая идея.
А с чем может быть связана проблема со сбором данных - до установки очередей работало всё отлично?
мне начинает казаться, что проблема в прокладке между рулём и сиденьем :)
я же показал, где останваливается сбор данных