From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Creation and understanding of custom invoke nodes

Solved!
Go to solution

Hi,

 

could I create somehow a custom invoke node? And is it possible to check the code behind of LV invoke nodes? For example I would like to understand how GObject.classOperator.traverse works, but it interested me generally (for any invoke node).

 

Thanks,

 

Balint

0 Kudos
Message 1 of 9
(3,457 Views)

Hi ViltBalint,

 

you can create "custom" propertynodes or methods for XControls…

(LabVIEW comes with an example for a XControl!)

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 2 of 9
(3,449 Views)

Hi GerdW,

 

thanks the example, I understand one of part my question. Have you any idea, how could I see, what code will be executed behind the build in LV invoke nodes? Or is that now allowed for users?

0 Kudos
Message 3 of 9
(3,429 Views)

Hi ViltBalint,

 

what code will be executed behind the build in LV invoke nodes? Or is that now allowed for users?

Well, that would be the same as asking "What's the code behind the BuildArray node?"…

They are LabVIEW functions and are provided "as is". You can always read the LabVIEW help to understand how they work…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 4 of 9
(3,423 Views)

So the tracing is not available between property node and code (regardless of code is open source or not)?

0 Kudos
Message 5 of 9
(3,410 Views)
Solution
Accepted by topic author ViltBalint

Hi ViltBalint,

 

So the tracing is not available between property node and code

Well, property nodes simply read or set properties of a control: all they do is accessing data inside a datastructure related to that control.

As LabVIEW is closed source I don't think NI will tell you any details about those datastructures…

For methods: they do some more interesting stuff, but it's basically the same: NI will not tell you the implementation behind them…

 

Why do you even want to "check the code behind" those method nodes?

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
Message 6 of 9
(3,397 Views)

I would like to know exactly why execution time of Class.traverse is significantly slower in a bigger project. For example: I would like traverse GObjects on a VI, the VI has not any project dependency and it is a fast operation is a small project. BUT if I replace my VI to a larger project (of course with same dependency) the execution time will be increase, and I can not imagine why. Any idea?

Anyway thanks your help, I got answer for my original questions.

 

Balint

0 Kudos
Message 7 of 9
(3,387 Views)

Inspied By Edgar Allen Poe "Annabelle Lee"

 

"

It was many and many of years ago when working with my PC

That a hint was offered that I did make for scripting code to see

I waited for others to ask what may and learn what I could glean

And to my surprise, none did ask save Ton and I gave him this bean

"

 

Since Scripting is now available, I will share the following.

 

I learned from "a little birdie" a way to unlock all of the locked code in LabVIEW. That hole has been long plugged but at the time I offered to unlock choice code and all they had to do was ask. TO my surprise only one person asked and what they asked for was exactly that function!

 

Here are two VIs that may be interesting.

 

Ben

 

 

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Download All
0 Kudos
Message 8 of 9
(3,364 Views)

Hi Ben,

 

thanks for the nice poem and hint 🙂

I know both of VIs that you linked, and "TRef Traverse.vi" contains that piece of code (see pic.), which behaves in different way in a small and a big project (realized that strange behavior just after feature integration 😕 ).

So I have currently two idea about that:

  • Traverse makes inside some project dependent operation (despite of it is unecessary (?))
  • General overhead in a big project because of resource (memory) management in LabVIEW

Do you have any idea?

 

Balint

 

traverse.PNG

 

 

0 Kudos
Message 9 of 9
(3,322 Views)