LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

BUG: Nested cluster Value change events

Recursively handle value change events on all cluster elements : r/LabVIEW (reddit.com)

 

So, apparently if you register for cluster value change events in nested clusters and use a Value Change(Signalling) it'll propagate to parents, but not to children, even if the child is in fact changed!

 

Tested in 2019 and 2024

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
Message 1 of 37
(1,066 Views)

Nice catch!

 

Verified in LV24Q3.

 

Checked dynamic event registration, fails too.

Checked callback event registration, fails too.

Message 2 of 37
(1,036 Views)

@Yamaeda wrote:

Recursively handle value change events on all cluster elements : r/LabVIEW (reddit.com)

 

So, apparently if you register for cluster value change events in nested clusters and use a Value Change(Signalling) it'll propagate to parents, but not to children, even if the child is in fact changed!

 

Tested in 2019 and 2024


It will also fire both cases if you directly change the value of the nested cluster directly and not use a Value Signaling Property node.

 

Not sure if this is a bug or unexpected behavior. The value of both the nested cluster and parent cluster have changed, so both events actually occurred. If you start to have more than 1 parent child, I imagine it will become difficult to keep track of which clusters should fire an event.

 

It also seems odd to have different events for nested clusters whose value has changed. It should be trivial to see what value has changed and decide what to do accordingly. 

 

EDIT: Reread post and understand difference. But still not sure whether the value change on the parent should propagate to the nested child. Using the front panel directly I cannot change the child without triggering the event. Changing the parent only changes a parent event. I thought you did not want propagation of the change up to the parent when only the child was changed.

0 Kudos
Message 3 of 37
(1,002 Views)

@mcduff wrote:

Not sure if this is a bug or unexpected behavior. .


IMO, it's a bug and unexpected behavior 😆.

Message 4 of 37
(989 Views)

wiebe@CARYA wrote:

@mcduff wrote:

Not sure if this is a bug or unexpected behavior. .


IMO, it's a bug and unexpected behavior 😆.


Excuse my stupidity and ignorance, but maybe you can explain the bug better.

 

Case: Nested Cluster - Register Value Changed event for both the parent and child cluster

 

Effect - Value Change of Child - fires an event in the parent case also

Effect - Value Change of Parent - only fires a single event

 

The Event Log below shows this, change child also get a parent event, change parent no child event.

What am I missing?

 

mcduff_0-1727197283194.png

 

0 Kudos
Message 5 of 37
(981 Views)

@mcduff wrote:

wiebe@CARYA wrote:

@mcduff wrote:

Not sure if this is a bug or unexpected behavior. .


IMO, it's a bug and unexpected behavior 😆.


Excuse my stupidity and ignorance, but maybe you can explain the bug better.

 

Case: Nested Cluster - Register Value Changed event for both the parent and child cluster

 

Effect - Value Change of Child - fires an event in the parent case also

Effect - Value Change of Parent - only fires a single event

 

The Event Log below shows this, change child also get a parent event, change parent no child event.

What am I missing?

 

mcduff_0-1727197283194.png

 


I believe that the OP is specifically speaking about firing Events by writing to the Value property of a nested Cluster element using a property node of the parent cluster configured to write Value(Signaling).

 

This signals a value Change to the Parent object but not the child.  RATIONAL the p-node is working on the called Object.  So, even though the property written is an element in a sub-object, you are signaling a value change of the object  ThisObject (being the object that the property node has been created to act on)

 

This is the behavior I expect!  I will admit that it may sound like "LabVIEW minutea that may.bite you someday"   

isn't there a long thread full of that information?


"Should be" isn't "Is" -Jay
0 Kudos
Message 6 of 37
(956 Views)

@JÞB wrote:


I believe that the OP is specifically speaking about firing Events by writing to the Value property of a nested Cluster element using a property node of the parent cluster configured to write Value(Signaling).


With the example given, whether I change the value directly or by a Value(Signaling) node, I see the same effect. I'm glad I'm no the only one who doesn't see the issue.

0 Kudos
Message 7 of 37
(936 Views)

@mcduff wrote:

wiebe@CARYA wrote:

@mcduff wrote:

Not sure if this is a bug or unexpected behavior. .


IMO, it's a bug and unexpected behavior 😆.


Excuse my stupidity and ignorance, but maybe you can explain the bug better.

 

Case: Nested Cluster - Register Value Changed event for both the parent and child cluster

 

Effect - Value Change of Child - fires an event in the parent case also

Effect - Value Change of Parent - only fires a single event

 

The Event Log below shows this, change child also get a parent event, change parent no child event.

What am I missing?

 

mcduff_0-1727197283194.png

 


Effect - Value of child changed through Parent property, only fires single event.

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
Message 8 of 37
(885 Views)

@Yamaeda wrote:

Effect - Value of child changed through Parent property, only fires single event.

okay, now I am starting see the issue

Message 9 of 37
(862 Views)

@mcduff wrote:

@Yamaeda wrote:

Effect - Value of child changed through Parent property, only fires single event.

okay, now I am starting see the issue


....Which is not an issue!  The property node only signals a VC Event on the object it refers to and not every component of every data element inside the containing object.  

 

Imagine how filled up the Event Queue would get if you signaled VC events for every value in "Clustersaurus Rex!"  And that is the alternative, "Carpet bomb" every data value, even if there are hundreds of them!  So, signaling only signals a VC Event on "ThisObject." 


"Should be" isn't "Is" -Jay
0 Kudos
Message 10 of 37
(850 Views)