06-23-2016 08:41 AM
When I place the "match regular expression" VI from the string palette on a remote system, the VI is grayed out. Moving the cursor over it does not give any help information. Any idea what is causing this?
Stephen
Solved! Go to Solution.
06-23-2016 08:47 AM
LabVIEW Version?
06-23-2016 08:53 AM
Sorry, it's 2013.
06-23-2016 09:15 AM
Does it work if you're not logged in remotely?
06-23-2016 09:21 AM
Is it doing that only using that function, did you try any other?
06-23-2016 09:23 AM
06-23-2016 09:27 AM - edited 06-23-2016 09:37 AM
The "Match Regular Expression" primitive is actually implemented as an Xnode. I don't know if there are constraints to support for these when developing code for a remote target. Someone from NI could probably answer that.
You didn't tell us what the target system is. That might be useful info.
Just out of curiosity, instead of trying to place "Match Regular Expression" on your BD, can you right-click, then on the Functions palette, choose "Select a VI..." (see note below), then browse to your LabVIEW installation path (likely C:\Program Files (x86)\National Instruments\LabVIEW 2013, but may vary), then vi.lib\regexp\Match Regular Expression_Execute.vi and place that VI?
If that works, you've got essentially the "guts" of the primitive/Xnode. It won't be growable like the Xnode, but if you need them, all the submatches are available as an array of string at a bottom terminal.
I'm guessing, for some reason, you won't find that "regexp" support folder under vi.lib, which will at least confirm the "why" of the primitive being greyed out.
Dave
Note: if the "Select a VI..." option isn't present, pin the Functions palette (upper left corner), customize, Change Visible Palettes, place a check, hit OK, yadda yadda...
06-23-2016 04:19 PM - edited 06-23-2016 04:23 PM
David I did as you suggested (using 32 bit LV on Windows 7). I got a regex VI and it was not grayed out, but it differed from the one on the string palette.
It works fine, though, so I'll stick with that one.
06-23-2016 04:52 PM
Stephen,
Yes, it *WILL* look different; it's truly a VI, whereas the thing you were originally using would be generally referred to as a "primitive".
Forgive me if this is all obvious to you, but I'll go through the motions for the sake of anyone else reading this. Knowing the terminology makes talking about LabVIEW concepts easier.
In general, anything you drop on a block diagram and attach wires to is generically referred to as a "node". If it is fundamentally part of the graphical language (a classic example is the "Add" triangle), it is further described as a "primitive" - it can't be decomposed into other nodes on another block diagram. Primitives are almost always given that classic pale yellow background color.
Or a node could be a while loop, or a for loop, or a case structure - those all serve to encapsulate other bits of block diagram code.
If a node represents the calling interface of another piece of code (a.k.a. virtual instrument), it's described as a subVI (meaning, you can probably double-click on it and be whisked off to the front panel of the VI being called). Being able to call code you or someone else has written from higher level code is fundamental to well-structured, reusable architecture.
The Xnode is a very special case of several subVIs, taken together in a form of reuse library, which masquerade as if they're one primitive. Generally, only the folks at NI can create them, and they were introduced to encapsulate complex behavior, or adaptability, or hide other features which are only safe to use a certain way.
tl;dr I still don't know why your Xnode is greyed out, but I'm glad you're able to work around the immediate problem by using the VI which makes up the bulk of the Xnode's functionality.
Dave
06-23-2016 08:20 PM