Не срабатывает остановка приложения
-
- developer
- Сообщения: 257
- Зарегистрирован: 03 янв 2014, 19:37
- Версия LabVIEW: 2016
- Откуда: Украина, Киев
- Контактная информация:
Не срабатывает остановка приложения
Здравствуйте, коллеги!
Ситуация следующая:
Есть 2 :
1. sub.vi: Приём данных с железяки, передача данных на main.vi , в случае, если железяка сообщает об ошибке - передача notifier на main.vi о том, что работу надо остановить. Работает, пока не получит notifier о main.vi о том, что надо заканчивать работу с железякой.
2. main.vi 2 цикла: 1 цикл. Eventы для обработки действий пользователя с интерфейсом. Останавливается в 2 случаях: пользователем нажата кнопка "Стоп", получен User Event о том, что надо закрываться.
2 цикл. Принимает данные с sub.vi, обрабатывает их, выводит результаты юзверю. Останавливается в 2 случаях: sub.vi прислало notifier завершения работы в связи с ошибкой железяки; получены нужные данные; получен notifier от 1 цикла о том, что юзверь закончил работу. При первых двух вариантах шлёт user event 1 циклу о том, что пора заканчивать работу.
Итак, проблема: в режиме отладки ("лампочка") - всё работает как надо. В стационарном же режиме main.vi не останавливает свою работу, а конкретно не останавливается второй цикл.
В чём может быть проблема? задержки в циклах везде проставлены, всё подключено, так далее. Где копать?
Спасибо!
Ситуация следующая:
Есть 2 :
1. sub.vi: Приём данных с железяки, передача данных на main.vi , в случае, если железяка сообщает об ошибке - передача notifier на main.vi о том, что работу надо остановить. Работает, пока не получит notifier о main.vi о том, что надо заканчивать работу с железякой.
2. main.vi 2 цикла: 1 цикл. Eventы для обработки действий пользователя с интерфейсом. Останавливается в 2 случаях: пользователем нажата кнопка "Стоп", получен User Event о том, что надо закрываться.
2 цикл. Принимает данные с sub.vi, обрабатывает их, выводит результаты юзверю. Останавливается в 2 случаях: sub.vi прислало notifier завершения работы в связи с ошибкой железяки; получены нужные данные; получен notifier от 1 цикла о том, что юзверь закончил работу. При первых двух вариантах шлёт user event 1 циклу о том, что пора заканчивать работу.
Итак, проблема: в режиме отладки ("лампочка") - всё работает как надо. В стационарном же режиме main.vi не останавливает свою работу, а конкретно не останавливается второй цикл.
В чём может быть проблема? задержки в циклах везде проставлены, всё подключено, так далее. Где копать?
Спасибо!
колдооооовствооооо! (С)
- Super Star
- adviser
- Сообщения: 228
- Зарегистрирован: 07 фев 2013, 08:37
- Версия LabVIEW: 2011
Re: Не срабатывает остановка приложения
выкладывай
я люблю свою работу.... Я приду сюда в субботу ...
-
- developer
- Сообщения: 257
- Зарегистрирован: 03 янв 2014, 19:37
- Версия LabVIEW: 2016
- Откуда: Украина, Киев
- Контактная информация:
Re: Не срабатывает остановка приложения
Свои выложить не могу по причине расписки о неразглашении. Но вот смоделировал ситуацию - она аналогичная. Ивенты закрывать после цикла пробовал - разницы нет.
колдооооовствооооо! (С)
-
- developer
- Сообщения: 257
- Зарегистрирован: 03 янв 2014, 19:37
- Версия LabVIEW: 2016
- Откуда: Украина, Киев
- Контактная информация:
Re: Не срабатывает остановка приложения
alerm, а есть другие варианты, как остановить цикл с ивентами без юзер ивента? он же будет ждать, пока юзер что-либо сделает, а в случае ошибки железа необходимо остановить программу сразу же.
колдооооовствооооо! (С)
-
alerm
- leader
- Сообщения: 683
- Зарегистрирован: 02 май 2012, 21:28
- Награды: 1
- Версия LabVIEW: 20
- Благодарил (а): 59 раз
- Поблагодарили: 9 раз
- Контактная информация:
Re: Не срабатывает остановка приложения
AlexanderKonoval писал(а):необходимо остановить программу сразу же.
так мое предложение в настоящей программе помогло?AlexanderKonoval писал(а):Но вот смоделировал ситуацию - она аналогичная
- Super Star
- adviser
- Сообщения: 228
- Зарегистрирован: 07 фев 2013, 08:37
- Версия LabVIEW: 2011
Re: Не срабатывает остановка приложения
жалко у меня 2011
я люблю свою работу.... Я приду сюда в субботу ...
-
- developer
- Сообщения: 257
- Зарегистрирован: 03 янв 2014, 19:37
- Версия LabVIEW: 2016
- Откуда: Украина, Киев
- Контактная информация:
Re: Не срабатывает остановка приложения
К сожалению, попробовать смогу уже завтра. Думаю, что сработает. Но тут такая штука - меня на этом же форуме упрекали когда-то в использовании такого метода остановки приложения и говорили, что использовать его стоит только в том случае, если других вариантов нет.alerm писал(а):так мое предложение в настоящей программе помогло?
Кроме того мне интересна сама причина - почему в режиме отладки всё работает как надо, а в обычном - нет.
в более ранних версиях также смогу выложить лишь позже, извините, не доглядел этот нюанс.
колдооооовствооооо! (С)
-
alerm
- leader
- Сообщения: 683
- Зарегистрирован: 02 май 2012, 21:28
- Награды: 1
- Версия LabVIEW: 20
- Благодарил (а): 59 раз
- Поблагодарили: 9 раз
- Контактная информация:
Re: Не срабатывает остановка приложения
AlexanderKonoval, не, я не про STOP, посмотрите внимательно на рисунок, там Get Notifier Status выполняется после Dequeue Element благодаря кластеру ошибки
-
Vitekkz88
- expert
- Сообщения: 1100
- Зарегистрирован: 21 янв 2014, 15:45
- Награды: 3
- Версия LabVIEW: 12,13,14
- Откуда: Томск
- Контактная информация:
Re: Не срабатывает остановка приложения
Проблема в несоблюдении принципа dataflow. Картинка,которую привел alerm показывает Вам,что поток данных пойдет по порядку начиная от Dequeue Element к Get Notifier Status, я бы продолжил тянуть кластер ошибки дальше к Generate User Event Function.В чём может быть проблема? задержки в циклах везде проставлены, всё подключено, так далее. Где копать?
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
-А. И. Солженицын
-
- developer
- Сообщения: 257
- Зарегистрирован: 03 янв 2014, 19:37
- Версия LabVIEW: 2016
- Откуда: Украина, Киев
- Контактная информация:
Re: Не срабатывает остановка приложения
alerm, да, спасибо, помогло. Но этого оказалось недостаточно для того, чтобы при команде от sub.vi останавливалась main.vi. Проблему решил включением отправки notifier внутрь цикла sub.vi
Спасибо за помощь!
Спасибо за помощь!
колдооооовствооооо! (С)
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 2 Ответы
- 675 Просмотры
-
Последнее сообщение Sergey Puzanov
-
- 6 Ответы
- 907 Просмотры
-
Последнее сообщение AndreyDmitriev