Jump to content


Photo
- - - - -

XNode and ExternalNode help


  • Please log in to reply
25 replies to this topic

#1 lordexod

lordexod

    Very Active

  • Members
  • PipPipPip
  • 92 posts
  • Location:Poland
  • Version:LabVIEW 2012
  • Since:2007

Posted 10 April 2012 - 04:57 PM

Does anyone have specific documents about "XNode" and "ExternalNode" for LabVIEW FPGA? (hdlnode.jpg, createxnode.jpg)

Attached Thumbnails

  • createxnode.jpg
  • hdlnode.jpg

LabVIEW_XNodeDevelopment:<ver>

XNodeDevelopment_LabVIEWInternalTag=True

 

LabVIEW Reverse Engineer


#2 Aristos Queue

Aristos Queue

    LV R&D: I write C++/# so you don't have to.

  • Members
  • PipPipPipPipPipPip
  • 2,800 posts
  • Location:Austin, TX
  • Version:LabVIEW 2011
  • Since:2000

Posted 11 April 2012 - 04:17 AM

Yes. I do.
No, I won't share.

#3 lordexod

lordexod

    Very Active

  • Members
  • PipPipPip
  • 92 posts
  • Location:Poland
  • Version:LabVIEW 2012
  • Since:2007

Posted 11 April 2012 - 07:52 PM

Why do not you want to share?

LabVIEW_XNodeDevelopment:<ver>

XNodeDevelopment_LabVIEWInternalTag=True

 

LabVIEW Reverse Engineer


#4 Wouter

Wouter

    Very Active

  • Members
  • PipPipPip
  • 106 posts
  • Version:LabVIEW 2011
  • Since:2006

Posted 11 April 2012 - 09:35 PM

Proberbly because its classified :shifty:

#5 asbo

asbo

    I have no idea what you're talking about... so:

  • V I Engineering, Inc.
  • 1,273 posts
  • Version:LabVIEW 2011
  • Since:2008

Posted 12 April 2012 - 06:25 PM

You're such a tease, AQ.

#6 Aristos Queue

Aristos Queue

    LV R&D: I write C++/# so you don't have to.

  • Members
  • PipPipPipPipPipPip
  • 2,800 posts
  • Location:Austin, TX
  • Version:LabVIEW 2011
  • Since:2000

Posted 13 April 2012 - 01:20 AM

Hey... at least you guys have gotten me to the point of admitting that XNodes even exist. Time was I would have accused you of hallucinations and swamp gas reflecting the light of Venus for believing in XNodes.

lordexod: The XNode tech is reserved to National Instruments for a long list of reasons, not the least of which is that it requires some significant contortions to avoid the traps and pitfalls of working with them. XNodes invoke G code to do their work. There are various operations that are not stable to do while LV is doing certain operations (loading a VI is not always safe, for example, depending on what else LV is doing at the time). As a matter of fact, XNodes have been mostly abandoned by NI for further development ourselves because of their issues. They work great for some things, but poorly (or crashily) for others, and it is very hard to tell in advance whether a given use case will turn out to be the former or the latter. We'd like to have a more complete "G written in G" solution, one that we could release to customers, but XNodes aren't it.

#7 Jon Kokott

Jon Kokott

    Very Active

  • Members
  • PipPipPip
  • 180 posts
  • Location:Milwaukee, WI
  • Version:LabVIEW 2010
  • Since:2006

Posted 13 April 2012 - 01:31 AM

Check this out,

https://decibel.ni.c.../docs/DOC-13859

Then check out some more of darin's black magic. There is an Xnode tool in the code repo as well that will help you as well.
Certified LabVIEW Architect

#8 Darin

Darin

    Very Active

  • Members
  • PipPipPip
  • 247 posts
  • Version:LabVIEW 2009
  • Since:1992

Posted 13 April 2012 - 03:26 AM

*
POPULAR

I usually buy the "it is too complicated for the masses" argument until I try using XControls. Compared to those XNodes are a walk in the park.
  • Phillip Brooks, HeLo, flarn2006 and 1 other like this

#9 daal

daal

    More Active

  • Premium Member
  • 37 posts
  • Location:Montréal
  • Version:LabVIEW 2013
  • Since:1996

Posted 13 April 2012 - 06:20 PM

Does anyone have specific documents about "XNode" and "ExternalNode" for LabVIEW FPGA? (hdlnode.jpg, createxnode.jpg)



Look at this

How did you enable the creation of a Xnode and selection of abilities in your Project ?

#10 Aristos Queue

Aristos Queue

    LV R&D: I write C++/# so you don't have to.

  • Members
  • PipPipPipPipPipPip
  • 2,800 posts
  • Location:Austin, TX
  • Version:LabVIEW 2011
  • Since:2000

Posted 14 April 2012 - 03:46 PM

I usually buy the "it is too complicated for the masses" argument until I try using XControls. Compared to those XNodes are a walk in the park.

Ah, but XControls don't have the potential to corrupt your VI if you do them wrong. There's a big difference between "complex" -- which is a reason to put a good UI on something but not a reason to never release it -- and "flakey around the edges" -- which is a reason to keep it in house.

#11 gb119

gb119

    Extremely Active

  • Members
  • PipPipPipPip
  • 268 posts
  • Location:Leeds, UK
  • Version:LabVIEW 2012
  • Since:1995

Posted 15 April 2012 - 09:49 PM

Ah, but XControls don't have the potential to corrupt your VI if you do them wrong. There's a big difference between "complex" -- which is a reason to put a good UI on something but not a reason to never release it -- and "flakey around the edges" -- which is a reason to keep it in house.

XControls can lock you out of classes in rather unfriendly ways (and yes this is documented I know but I still think it's not great that the IDE lets one create uneditable items without a bit more effort to stop you...). Still XNodes are fun to play with and a pain in the backside to work with. It's a shame that that is apparently an unsurmountable hurdle, but hey third (or more ? - External Nodes, XNodes, ...) time lucky :shifty:
Gavin Burnell
Lecturer in Condensed Matter Physics
School of Physics and Astronomy
University of Leeds, UK
http://www.stoner.le...ac.uk/people/gb

#12 lordexod

lordexod

    Very Active

  • Members
  • PipPipPip
  • 92 posts
  • Location:Poland
  • Version:LabVIEW 2012
  • Since:2007

Posted 19 April 2012 - 07:49 PM

Aristos Queue: "The XNode tech is reserved to National Instruments for a long list of reasons...." - Not anymore, but for one reason only. I enabled XNode on LabVIEW, as you can see the screenshots.
"Yes. I do. No, I won't share. " - If you do not want to share or exchange,you will not admit publicly that you have something.

Darin: With this "MathNode" a good job. A little bit I know already what is going on with this XNode.

LabVIEW_XNodeDevelopment:<ver>

XNodeDevelopment_LabVIEWInternalTag=True

 

LabVIEW Reverse Engineer


#13 todd

todd

    Extremely Active

  • Premium Member
  • 344 posts
  • Location:Seattle
  • Version:LabVIEW 2013
  • Since:2002

Posted 19 April 2012 - 07:58 PM

lordexod, when AQ says he won't share the information, that in itself is useful information. Since the implied intent was not clear (that XNodes can corrupt a VI), he was then more explicit.

#14 Darin

Darin

    Very Active

  • Members
  • PipPipPip
  • 247 posts
  • Version:LabVIEW 2009
  • Since:1992

Posted 19 April 2012 - 08:21 PM

*
POPULAR

One of these days (I have said this before) I will dust off my XNode Wizard. It automates a basic set of common tasks and makes it easy to create a certain class of XNodes: Growable nodes, dropping template code and mapping the terminals from the template to the XNode, and drawing the image. My own experience is that with the limited set of features I have managed to reverse engineer, they are stable, yet you can still write a broad spectrum of useful nodes, especially since a vast majority of the time you want a subVI with something resembling the type adaptation of primitives without writing hundreds of polymorphic instances. The fact that XNodes ship with LV (ie. Match Regular expression) means that stable objects can be created. Express VIs are using very similar if not the exact same framework.

I can corrupt a VI with scripting, with Write to File, or even setting the current values to default. And just because I can wreak havoc with my reciprocating saw does not change the fact it is my favorite tool in my garage. With great power comes great responsibility.

I do wish that someday I could package XNodes in Packed Project Libraries, they are made for each other. A single package containing one useful top-level object and a bunch of specialized subVIs that are best kept private.

In the meantime, besides the existing resources on LAVA I would check out the following:

http://forums.ni.com...ode/m-p/1293680
(a cool, simple XNode example. Shows handling clicks, type adaptation, and updating the image)

https://decibel.ni.c.../docs/DOC-15362
(a bit of a play, shows a few more abilities and techniques)

Attachment: This is a picture constant which allows drag and drop of common image types (JPEG, PNG). You can place this constant on the BD and then drag and drop an image file to get a constant picture. When you are finished, you can right-click and replace the XNode with a simple picture constant (this avoids the need to distribute the XNode with your VI). I like it as a quick way to get a picture constant without the usual method of read file, draw to picture indicator, create constant, copy, paste. Simply extract the folder and drag the .xnode file to your BD. XNodes can be added to your palettes, just remember to choose the 'All Files' filter when browsing for the .xnode file.

enjoy!

Attached Files


  • bbean, Antoine Châlons and jcarmody like this

#15 lordexod

lordexod

    Very Active

  • Members
  • PipPipPip
  • 92 posts
  • Location:Poland
  • Version:LabVIEW 2012
  • Since:2007

Posted 20 April 2012 - 08:55 AM

todd: "XNodes can corrupt a VI..." - In LabVIEW is a vi file recovery option. And as LabVIEW or computer the crashes, you can always reset.

Darin: This XNode's is a very interesting.

LabVIEW_XNodeDevelopment:<ver>

XNodeDevelopment_LabVIEWInternalTag=True

 

LabVIEW Reverse Engineer


#16 lordexod

lordexod

    Very Active

  • Members
  • PipPipPip
  • 92 posts
  • Location:Poland
  • Version:LabVIEW 2012
  • Since:2007

Posted 22 May 2012 - 02:56 PM

Aristos Queue: If you want something for knowledge of the "xnode, externalnode",it write on priv.
Anyone know what is "LabVIEW_LabVIEWInternalTag_PKG"?
  • flarn2006 likes this

LabVIEW_XNodeDevelopment:<ver>

XNodeDevelopment_LabVIEWInternalTag=True

 

LabVIEW Reverse Engineer


#17 Djed

Djed

    Active

  • NI
  • 16 posts
  • Version:LabVIEW 8.5
  • Since:2007

Posted 22 May 2012 - 04:57 PM

AQ's not trying to be mean in denying you internal information on xnodes. First, such documentation was written for internal purposes and as such contains "classified" information. Second, xnodes were not designed as a feature for customers but as an internal tool. As such, believe me!, they are buggy, under documented, flaky, dangerous and unfinished. They are nowhere near a feature we can support and we are not allowed to talk about them. This is not really a "protecting you from yourself" but rather not publishing an unfinished, buggy feature. Maybe someday we'll have the resources to finish and productize the feature. But for now, we are supposed to answer "No comment" according to the lawyers. =)

#18 lordexod

lordexod

    Very Active

  • Members
  • PipPipPip
  • 92 posts
  • Location:Poland
  • Version:LabVIEW 2012
  • Since:2007

Posted 22 May 2012 - 06:24 PM

Djed:
Second, xnodes were not designed as a feature for customers but as an internal tool. - I am not a customer.
As such, believe me!, they are buggy, under documented, flaky, dangerous and unfinished. - I did not bother me.
They are nowhere near a feature we can support and we are not allowed to talk about them. - This is the forum, you do not have to speak.
You know what it is "LabVIEW_LabVIEWInternalTag_PKG"?
  • flarn2006 likes this

LabVIEW_XNodeDevelopment:<ver>

XNodeDevelopment_LabVIEWInternalTag=True

 

LabVIEW Reverse Engineer


#19 lordexod

lordexod

    Very Active

  • Members
  • PipPipPip
  • 92 posts
  • Location:Poland
  • Version:LabVIEW 2012
  • Since:2007

Posted 31 May 2012 - 04:26 PM

How bad works XNode's Interface in LabVIEW, you can write such an interface to the WebUIBuilder software.
From what I saw, there are several types of XNode (CXNode, GXNode, HybridXNode).

LabVIEW_XNodeDevelopment:<ver>

XNodeDevelopment_LabVIEWInternalTag=True

 

LabVIEW Reverse Engineer


#20 lordexod

lordexod

    Very Active

  • Members
  • PipPipPip
  • 92 posts
  • Location:Poland
  • Version:LabVIEW 2012
  • Since:2007

Posted 05 July 2012 - 12:00 PM

I found out what I wanted.

LabVIEW_XNodeDevelopment:<ver>

XNodeDevelopment_LabVIEWInternalTag=True

 

LabVIEW Reverse Engineer