Event structure. Баг

Простейшие вопросы в области инженерной разработки

Event structure. Баг

Postby Usss on 21 Sep 2017, 13:48

Забавная фигня, довольно не очевидно, что оказывается нельзя в разные кейсы вставлять Event structure, которые работают от одного события или кнопки. Это приводит к зависанию.
В примере надо несколько раз нажимать Пуск и в диалоге Назад. Состояние start запускается только один раз за все время, тем не менее эвент структура в старте в дальнейшем вешает всю программу.
Attachments
Main.vi
(11.67 KiB) Downloaded 22 times
Sub dialog.vi
(14.38 KiB) Downloaded 24 times
Usss
beginner
beginner
 
Posts: 48
Joined: 19 Apr 2017, 23:06
LabVIEW Version: 2015
Karma: 10

Re: Event structure. Баг

Postby Borjomy_1 on 21 Sep 2017, 15:18

С чего баг-то? Принцип DataFlow никто не отменял. Если вы поставите таймаут на эвент структуру в старте, то все пройдет дальше.
P.s программу не смотрел. Нет у меня LV2015.
Borjomy_1
expert
expert
 
Posts: 1766
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Event structure. Баг

Postby Usss on 21 Sep 2017, 15:30

timeout не помогает
вот для VL14
Attachments
Main.vi
(8.47 KiB) Downloaded 19 times
Sub dialog.vi
(10.14 KiB) Downloaded 14 times
Usss
beginner
beginner
 
Posts: 48
Joined: 19 Apr 2017, 23:06
LabVIEW Version: 2015
Karma: 10

Re: Event structure. Баг

Postby Borjomy_1 on 21 Sep 2017, 15:50

Можно спросить, зачем вы в Sub dialog напихали Event Palette для каждого состояния? Причем, поставили таймаут только для одной, которую программа проскакивает и на следующей итерации встает на второй.
Функционал подпрограммы похож на ожидание нажатия на кнопку. Вообще непонятно, зачем такое городить. При том, что функция First Call дает True только при первом вызове, т.е при втором сдвиговый регистр остается неинициализированным. Достаточно этого:
Attachments
Ожидание нажатия кнопки.png
Ожидание нажатия кнопки.png (17.68 KiB) Viewed 1050 times
Borjomy_1
expert
expert
 
Posts: 1766
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Event structure. Баг

Postby Usss on 21 Sep 2017, 16:42

В моей программе на первом этапе пользователь вводит пароль, на втором идет различная обработка данных. В примере ничего этого нет. Я решил проблему тем, что просто создал отдельную кнопку выхода для другого эвент кейса
Usss
beginner
beginner
 
Posts: 48
Joined: 19 Apr 2017, 23:06
LabVIEW Version: 2015
Karma: 10

Re: Event structure. Баг

Postby dadreamer on 21 Sep 2017, 18:40

Это не баг. Просто надо хорошенько разобраться, как работает эта структура, и внимательно прочитать справку.

Обязательно по ссылкам пройдитесь и разберитесь в каждом пункте. Особенно в первом - он у вас как раз не выполняется. Пункт весьма неоднозначный. Вот эту тему прочтите: viewtopic.php?p=69994#p69994 Лично я принципиально избегаю помещения Event Structure в Case Structure. А эвент в эвент вообще не помещается, потому что в этом нет смысла. Даже While внутри другого While - излишество.
User avatar
dadreamer
doctor
doctor
 
Posts: 2938
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 716
I/O VIP vision internet

Re: Event structure. Баг

Postby Blackman on 22 Sep 2017, 00:11

Attachments
TLB Event Handler.png
TLB – Top Level Baseline.ppt
(353 KiB) Downloaded 18 times
Blackman
leader
leader
 
Posts: 695
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 174

Re: Event structure. Баг

Postby dadreamer on 22 Sep 2017, 00:44

User avatar
dadreamer
doctor
doctor
 
Posts: 2938
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 716
I/O VIP vision internet

Re: Event structure. Баг

Postby Blackman on 22 Sep 2017, 19:57

Основная идея автора шаблона (Norman Kirchner) в простом способе добавления, редактирования и группирования событий по типу.
В предлагаемом примере:
1. Добавьте обработку события для контрола Boalean в обоих Loops. Почувствовали разницу?)
2. Измените наименования (labels) всех зарегистрированных для событий контролов. Как видите в нижнем Loop ничего редактировать не надо, а в верхнем придется редактировать селектор в Case Structure.
Attachments
TLB Events Example.png
TLB Events Example LV13.vi
(20.7 KiB) Downloaded 22 times
Blackman
leader
leader
 
Posts: 695
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 174

Re: Event structure. Баг

Postby Kosist on 23 Sep 2017, 01:12

Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 786
Joined: 21 Feb 2011, 23:44
Location: СумГУ
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 236
CLAD I/O VIP students

Re: Event structure. Баг

Postby Blackman on 23 Sep 2017, 11:17

3. Замените контрол String на контрол Path.
По поводу динамической регистрации. В шаблоне это используется в первую очередь для генерации команды Cache User Parameters , а назначение вложенной ES указано в комментарии и она может содержать всего одно событие Timeout)))
Upd: По архитектуре шаблона - к автору. Адрес его почты есть в открытом доступе.
Blackman
leader
leader
 
Posts: 695
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 174

Re: Event structure. Баг

Postby Kosist on 23 Sep 2017, 15:38

Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 786
Joined: 21 Feb 2011, 23:44
Location: СумГУ
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 236
CLAD I/O VIP students

Re: Event structure. Баг

Postby dadreamer on 23 Sep 2017, 20:30

User avatar
dadreamer
doctor
doctor
 
Posts: 2938
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 716
I/O VIP vision internet


Return to Для чайников

Who is online

Users browsing this forum: Bing [Bot] and 10 guests

cron