LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Bundled dynamic event registration

Hello,

In my latest project I tried to streamline some dynamic event registration with control reference clusters and I just can't find an explaination for this behavior.  I have a sufficient work around and I'm only looking insight into why this is behaving this way I just can't do the things I want to do.

 

Issue:  When dynamically registering a cluster of control refs to multiple events in a single event registration node, only the first event is properly handled.  All other events assocaited with the same cluster of refs register and trigger but the event structure subscribed to the event reg shows the event as (unhandled) even if there is an event case for that particular event.  I can multi-register a cluster of user events and a cluster of control refs sucessfully (not shown in the code below).

 

Here's the code that works.

event_reg_gogo.png

Here's some that doesn't.  Only value change event case is handled.  If the order in the event reg node is changed the top event is always handled.

event_reg_nogo.png

 

A less desirable workaround (not as flexible for me and without strict typing on the second bundle, the event case names can get pretty long)event_reg_ewgo.png

 

My apologies if this is documented somewhere and I missed it but if anyone want's to try and explain this I would greatly apreciate it.

Thanks!

Message 1 of 12
(2,650 Views)

Based on what you have shown to work and not work I would suspect that it is a bug. I could not find a CAR tied to it although I didn't search too hard (I'll search more tomorrow and ask around).

 

It also looks like arrays of control references work fine if that would work better for what you are trying to do.

Matt J | National Instruments | CLA
0 Kudos
Message 2 of 12
(2,611 Views)

Thank you Jacobson for taking a look.

 

You are correct arrays do work for multiple registrations but that means all control events will be handled by the same event case.

I tried one more configuration and it appears to not be an issue with different clusters, only clusters containing the same reference.

event_reg_hmgo.png

 

Best Regards

Message 3 of 12
(2,560 Views)

@deveh wrote:

Thank you Jacobson for taking a look.

 

You are correct arrays do work for multiple registrations but that means all control events will be handled by the same event case.

I tried one more configuration and it appears to not be an issue with different clusters, only clusters containing the same reference.

event_reg_hmgo.png

 

Best Regards


You've been doing some pretty nice t-shooting.

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 4 of 12
(2,548 Views)

What if in the first one, instead of having one Boolean1 reference being split, you have 3 different reference constants that all happen to be boolean1.

 

My thought is that you have a single reference.  For some objects within LabVIEW, you can have different references even though they might happen to all point to the same object.  I'm wondering if that same scenario would apply here, where maybe it would work if you had 3 references to the same control, If they'd have different reference numbers, but point to the same object.

0 Kudos
Message 5 of 12
(2,529 Views)

@RavensFan wrote:

What if in the first one, instead of having one Boolean1 reference being split, you have 3 different reference constants that all happen to be boolean1.


I think I follow you.  This code passes just as does the first image in the top message.

event_reg_pass.png

 

However, if you bundle each of those, the situation is similar to case 2, unhandled events in the event structure.

event_reg_fail.png

 

 

0 Kudos
Message 6 of 12
(2,522 Views)

Filed CAR 654057

Matt J | National Instruments | CLA
0 Kudos
Message 7 of 12
(2,511 Views)

@deveh wrote:

@RavensFan wrote:

What if in the first one, instead of having one Boolean1 reference being split, you have 3 different reference constants that all happen to be boolean1.


I think I follow you.  This code passes just as does the first image in the top message.

event_reg_pass.png

 

 

 


Yes.  That is what I was thinking.  It is unfortunate that it did not help.

0 Kudos
Message 8 of 12
(2,503 Views)

Very interesting. This reminds me of a similar thing some 8-10 years ago, i think it was in LV8.2. The symptoms were the same, but i can't remember the exact setting, it might have been callback vi's. We ended up chaining Register for event nodes.

/Y

G# - Award winning reference based OOP for LV, for free! ADDQ VIPM Now on GitHub
"Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
Certified-LabVIEW-Developer
0 Kudos
Message 9 of 12
(2,464 Views)

CAR 654057 was fixed in LabVIEW 2019.

 

LabVIEW 2019 Bug Fixes

0 Kudos
Message 10 of 12
(1,144 Views)