-
Posts
823 -
Joined
-
Last visited
-
Days Won
25
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by Norm Kirchner
-
-
I encountered the word 'fewton' on wikipedia yesterday (it indeed is a 'singletone'-style object that has a limited number of maximum instances >1).
Felix
Well that's no surprise, you probably just added it yourself
I love wikipedia
j/k
-
That sounds very cool
So far I could only find this link which says it cannot be done. Maybe they are hiding it!
Copied my post from the dark side
As Holmes said to Watson...."Dig Deeper"C:\Program Files\National Instruments\LabVIEW 2009\resource\plugins\lv_newclassctl.vi
You will need to dig into it to properly understand it, but at the basic level this VI takes a grey cube picture as a constant and replaces the color on the grey cube w/ translated shaded colors and replaces those pixels on the input icon.
Some effort is warranted putting this into an example, I just don't have the time at the moment. I look forward to seeing what you do with it.
~,~
The Captain was here
- 1
-
Thats the only place I have seen it.
I don't know if it's easy or not to do.
Maybe its as simple as that data being located in the .lvclass file?
A while ago I was told that there is a VI that accomplishes this that we can use in vi.lib.
I can't find the information that directed me towards it, but hold out and someone should be able to direct us to it.
-
A related thought that might be good for this thread.
A mass icon editor user interface.
One that would easily let you, for any library (LVOOP or otherwise), see ALL the icons displayed and easily allow you to edit them simply by double clicking
I've done a mock-up for this but still incomplete, but really should be quite simple if someone runs with it.
The basic idea is that you have an interface that you point at a library.
It displays all icons at once so you can make sure that you have a library iconography that all matches and if you need to edit some, 1, all icons.... you now have an interface that might allow that to happen.
There are too many times that I set up a library and only after the fact of some minor change, something goes haywire in propagating nested library icons and some/all get messed up.
So if there was a way to see all icons at once and easily change 1/some/all managing library based icons would be Sooooo much easier.
y'all agree??!
-
I've been having the opposite problem - trying to work out the best way to store volatile state information for an XControl. If one writes this into display state then you end up with LabVIEW thinking it needs to re-save the parent vi which is a pain. (By volatile state I mean things about the appearance or behaviour of the XControl that need to be kept track off during runtime, but can happily be rest to default values when the program stops - values of sub-controls that form part of the XControl for example).
I think the answer is to use one of the traditional storage mechanisms like a LV2-stlye global(FGV/USR) but then I got to wondering what happens if I have multiple instances of the same XControl - I know XControl's facades run in separate applications instances, but do multiple XControls share the same application instance or do they get one each ?
What do others do about volatile state data ?
There is nothing about the XControl that says you can't have another shift register on the while loop.
Or another technique is to utilize the 'Close' ability of an XControl to clear state data that you don't want retained.
-
One thing that really really really .....wait.... wait for it..... really really really... bothers me about the marrying of XControls to classes is that the minute you have an XControl on a FP that uses a class, the class is locked.
I agree that this is a worthwhile idea, and I've already kudo'd it, but the difficulty developing under this paradigm when doing this needs to be addressed. (or am I wrong)
-
I'm a bit curious. Why did you use the timeout event with a timeout of 10 ms timeout instead of the mouse move event?
I'm merely curious. I want to learn from the masters.
Good question my friend.
And it is for this reason, it doesn't work as well because if the person moves the mouse faster than LV can move the panel then everything gets out of whack and you lose the drag.
I started by doing it that way.
I actually don't like having to revert to polling but it was the only way to get consistent, repeatable and responsive interaction.
On a very fast PC w/ nothing going on I would imagine that you 'might' not notice it. But if you were to change the algorithm and move the mouse quickly, you'll find that you lose the drag w/ out much effort.
-
Ooops, Thanks
-
Sorry, but can you explain a little bit how you made the note.vi movable? It seems like something about register user event, but I cannot figure out how to implement it. Thanks again.
This should help
<object width="786" height="600"> <param name="movie" value="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/jingh264player.swf"></param>'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/jingh264player.swf"></param> <param name="quality" value="high"></param> <param name="bgcolor" value="#FFFFFF"></param> <param name="flashVars" value="thumb=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/FirstFrame.jpg&containerwidth=786&containerheight=600&content=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/2009-12-08_1805.mp4"></param> <param name="allowFullScreen" value="true"></param> <param name="scale" value="showall"></param> <param name="allowScriptAccess" value="always"></param> <param name="base" value="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/"></param>'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/"></param> <embed src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/jingh264player.swf" quality="high" bgcolor="#FFFFFF" width="786" height="600" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/FirstFrame.jpg&containerwidth=786&containerheight=600&content=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/2009-12-08_1805.mp4" allowFullScreen="true" base="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/" scale="showall"></embed> </object>
- 1
-
I'm seeing this same issue. Has anyone found a plausible work around?
I see it in chrome, firefox and IE
-
An issue has been identified on some peoples systems that have had previous versions of LVS installed.
This issue is identified by everything looking like everything should work, you see your commands reflected in the LVS widget but nothing happens.
The updated package is 2.0.5-1 attached to this post
The issue is due to errors in the plug-ins
To ensure this is not a problem
Use the VI Package Manager to simply uninstall both packages,
Check the directory C:\Program Files\National Instruments\LabVIEW 2009\resource\QuickEdit\Plugins
Clear the contents of that directory
re-install both packages
After which only qualified and tested plugins should be present and your system should be operational
-
I think you misunderstood.
The clock is not something that I have created.
It is a google gadget.
But if you look at LabVIEW Speak you will see that I mimic this click/drag ability combined with right click menus and notify icons (System Tray Icons)
-
You even made a video to demonstrate. Thanks so much. That helps totally.
BY the way, is that clock running in LV too? Can you share the code?
Now that is flattery....no that was a google widget that I've been trying to make my stuff look like
-
An easy way to accomplish this is through VI server and the usage of Re-entrant Front Panels or the use of *.vit 's
First step is to make a VI that will be cloned over and over for each new note.
Flag the open with option 0x08 and it will open a new VI with each call.
<object width="1020" height="628"> <param name="movie" value="http://content.screencast.com/users/NJKirchner/folders/Jing/media/5fc68419-458d-495e-a4fe-582888c1dcf6/jingh264player.swf"></param>'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/5fc68419-458d-495e-a4fe-582888c1dcf6/jingh264player.swf"></param> <param name="quality" value="high"></param> <param name="bgcolor" value="#FFFFFF"></param> <param name="flashVars" value="thumb=http://content.screencast.com/users/NJKirchner/folders/Jing/media/5fc68419-458d-495e-a4fe-582888c1dcf6/FirstFrame.jpg&containerwidth=1020&containerheight=628&content=http://content.screencast.com/users/NJKirchner/folders/Jing/media/5fc68419-458d-495e-a4fe-582888c1dcf6/2009-12-07_1054.mp4"></param> <param name="allowFullScreen" value="true"></param> <param name="scale" value="showall"></param> <param name="allowScriptAccess" value="always"></param> <param name="base" value="http://content.screencast.com/users/NJKirchner/folders/Jing/media/5fc68419-458d-495e-a4fe-582888c1dcf6/"></param>'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/5fc68419-458d-495e-a4fe-582888c1dcf6/"></param> <embed src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/5fc68419-458d-495e-a4fe-582888c1dcf6/jingh264player.swf" quality="high" bgcolor="#FFFFFF" width="1020" height="628" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/NJKirchner/folders/Jing/media/5fc68419-458d-495e-a4fe-582888c1dcf6/FirstFrame.jpg&containerwidth=1020&containerheight=628&content=http://content.screencast.com/users/NJKirchner/folders/Jing/media/5fc68419-458d-495e-a4fe-582888c1dcf6/2009-12-07_1054.mp4" allowFullScreen="true" base="http://content.screencast.com/users/NJKirchner/folders/Jing/media/5fc68419-458d-495e-a4fe-582888c1dcf6/" scale="showall"></embed> </object>
- 1
-
Sydney,
Your in luck wrt the event timeout error case.
You accidentally wired the error wire under the structure
<object width="944" height="488"> <param name="movie" value="http://content.screencast.com/users/NJKirchner/folders/Jing/media/1bcbcd14-4133-4cbe-b55c-b926cdc518f8/jingh264player.swf"></param>'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/1bcbcd14-4133-4cbe-b55c-b926cdc518f8/jingh264player.swf"></param> <param name="quality" value="high"></param> <param name="bgcolor" value="#FFFFFF"></param> <param name="flashVars" value="thumb=http://content.screencast.com/users/NJKirchner/folders/Jing/media/1bcbcd14-4133-4cbe-b55c-b926cdc518f8/FirstFrame.jpg&containerwidth=944&containerheight=488&content=http://content.screencast.com/users/NJKirchner/folders/Jing/media/1bcbcd14-4133-4cbe-b55c-b926cdc518f8/2009-12-07_0953.mp4"></param> <param name="allowFullScreen" value="true"></param> <param name="scale" value="showall"></param> <param name="allowScriptAccess" value="always"></param> <param name="base" value="http://content.screencast.com/users/NJKirchner/folders/Jing/media/1bcbcd14-4133-4cbe-b55c-b926cdc518f8/"></param>'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/1bcbcd14-4133-4cbe-b55c-b926cdc518f8/"></param> <embed src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/1bcbcd14-4133-4cbe-b55c-b926cdc518f8/jingh264player.swf" quality="high" bgcolor="#FFFFFF" width="944" height="488" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/NJKirchner/folders/Jing/media/1bcbcd14-4133-4cbe-b55c-b926cdc518f8/FirstFrame.jpg&containerwidth=944&containerheight=488&content=http://content.screencast.com/users/NJKirchner/folders/Jing/media/1bcbcd14-4133-4cbe-b55c-b926cdc518f8/2009-12-07_0953.mp4" allowFullScreen="true" base="http://content.screencast.com/users/NJKirchner/folders/Jing/media/1bcbcd14-4133-4cbe-b55c-b926cdc518f8/" scale="showall"></embed> </object>
Also with regards to your second question, right click each of the list-boxes and look at each 'Selection Mode'
That setting declares what kind of data type the MCL is. If it declared to be 0 or 1, then it will be a scalar. If it is one of the 'x or more' then it will be an array.
So really for the code that your doing in the MCL sub-vi (from what I can tell) you don't need to strict any of those references and realize that those kind of coercion dots are ok
good luck
-
Let me know if your interested in a google wave invitiation and I'll make the call to hand out as possible.
There are lots of up and coming LV Architecture questions forming
-
It sounded like you are new to the entire process of using LabVIEW.
If this is true, I would highly recommend looking into the NI courses that are offered.
Above and beyond the courses offered by NI, LabVIEW for everyone is a great book that covers a TON of topics from beginner to advanced (although I' not sure how much OO it covers)
But once you get past just the basics the I would recommend reading some beginner OO books that might not even be LV oriented. AristosQueue has a slew of recommendations on those.
-
Has anyone created an envelope detector? I have a 300 KHz signal that will be on for varying amounts of time (20 to 40 msec) with a gap between the pulses of about 10 msec. I'd need to figure out the actual on time of the signal. I suppose I could use a peak detector to find all the peaks in the burst and then determine when the peaks drop out, but that just seems kind of clumsy. Any better ideas?
George
What kind of Eb/No and signal are you working with? Digital/Analog, constant envelope, Peak/Average ratio.
I would imagine you would do a power vs time analysis and just look for the power edge.
-
Just thought I would also Link the files here for simplicity sake
The current LVS version is 2.0.5
The current QEC Plugin Pack is 2.0.0
They can be found below
(because I could not properly edit this post)
-
LabVIEW Speak(LVSpeak) 2.0 has been officially released!
There is an article in the NI Instrumentation Newsletter about it and a follow up post on the NI Communities with getting started videos and the current packages.
But I've decided to support the independent LV community and keep the discussion on LAVA.
So hopefully we can get some dark-siders to come over to the light. >8^}>
I welcome any feedback and keep an eye out for another LAVA topic to be posted regarding building QuickEdit Plugins and another for building LVSpeak Clients
~,~
The Captain Was Here
-
I know that this can happen if you have both dynamic events and static events fire at the same time because they go into two queues and the order is only determined by the millisecond timer. See here.
As far as I know, this should NOT apply to val(sgnl) events you string together. I believe they should execute in order.
I say this from a standpoint of that I have never heard of anything that ensures that they will be ordered properly.
There is most likely a high likelihood that they will, but this only highlights that people write programs that assume this.
If AQ or someone in R&D pipes up and says that it is ensured, then I'll fully retract that. But I will never recommend that anyone write a program that depends on having multiple Val(signl) strung together to execute the events in that order for all those reasons above.
San,
As a point of information, what is your skill/experience level in LV?
- 1
-
- Popular Post
- Popular Post
First I totally agree with you that this can be bad as in using globals is bad. everyone is at different programming levels and knowledge levels,
You think someone who has openly stated they are new to LabVIEW is going write beautiful code,
Understanding dynamic events is hardly a basic level subject.
So if someone starting out has a basic application, and the use of Val(Sign) property works and gets the job done,
is that such a bad thing?
I never stated to abuse it
it is not detrimental that somebody has knowledge.
If they do not know it exists, or do not understand how it works, then how are they to know why its bad?
Programming is a journey. So telling someone to disregard the Val(Sign) property means discouragement from learning something
I suppose I'll clarify my point for just a sec, then I'll try to follow my own points (about to be given) and provide alternatives.
- I think using (not even abusing) the Val(signaling) property is far far worse than globals depending on usage. Hence the fervor.
- I don't expect pretty code out of the gate but I don't know how to stop a newbie from adopting poor practices out of the gate other than striking the fear of god into them.
- Agreed, using dynamic events 'as truly dynamic events' is not a beginner topic, but I believe the use of 'user events' are beginner material which only requires knowledge of the mechanics of wiring them up.
- and summing up those last few points: I think that a smarter person than I would not need the 'fear-o-god' tactic to discourage poor techniques. Rather it would be much more classy and eloquent to give knowledge to them through some simple example programs demonstrating the bad aspects and demonstrations of better ways to do it.
Now onto my attempt at eloquence:
Jim Carmody did a great job with exactly what I think San was gunning for so I'll try not to replicate that
First on some of the dangers of using the Val(signaling)
Some simple programs are created that are fully reactive (waiting for some event to happen) and you will see this as just an event structure in a while loop.
<a href="http://content.screencast.com/users/NJKirchner/folders/Jing/media/8689b74b-ac72-44c8-952e-80c386e03c21/2009-11-29_1536.png"><img'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/8689b74b-ac72-44c8-952e-80c386e03c21/2009-11-29_1536.png"><img class="embeddedObject" src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/8689b74b-ac72-44c8-952e-80c386e03c21/2009-11-29_1536.png" width="448" height="226" border="0" /></a>
And depending on the scope of the code, this can get the job done just fine and avoid extra coding that may never be utilized.
But the problem, and this sounds much closer to what San was looking at, is what happens when you now need to invoke the code within this state without the user hitting a button? By default, if the user doesn't know any better, they'll use the Val(Signaling) property. This is typically because it will require almost no extra code to be written other than dropping that property node.
Well this starts to snowball into a bigger issue when someone decides that they just don't want to execute that one event state, but rather I need 4 states executed and I want that state to always be the second of the 4. What typically happens, is that the end user just starts stringing together multiple Val(signaling) properties for multiple controls to call multiple event states. This is particularly bad because there is no guarantee that as you string together Val(signaling) properties that they'll execute in that order, so you've just introduced potential bad logic in your vi.
Now it gets even trickier if you like to use property nodes all over you code because if you need to better understand the flow of the program, how do you know who and what is controlling the state firing?
Search for Val(signaling): you get all usages of that property (fail).
Search for all property nodes of a given control: you now find every property of a control and you only find the property nodes that are directly linked to that control and you miss any non-linked property node.
<a href="http://content.screencast.com/users/NJKirchner/folders/Jing/media/54b79210-0b47-42d6-9770-4be1f36bbe13/2009-11-29_1555.png"><img'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/54b79210-0b47-42d6-9770-4be1f36bbe13/2009-11-29_1555.png"><img class="embeddedObject" src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/54b79210-0b47-42d6-9770-4be1f36bbe13/2009-11-29_1555.png" width="437" height="142" border="0" /></a>
And just to re-itterate. Don't underestimate the need to understand the flow of a program. You will someday need to re-learn what you wrote. Someone's LAVA tagline is perfect for this "Imagine the next person to work with your code is a deranged psychopath and knows where you live"
So now onto some alternatives and notes about the Val(Signaling) property.
Its intent in life is to provide that 'if all else wont work' kind of functionality to the LV language. An example of this is when using the data terminal of an event case. In this case you want that data on the terminal and the only way to programatically fire that event and still have that data is through the Val(signaling) property
<a href="http://content.screencast.com/users/NJKirchner/folders/Jing/media/41648ccd-13e7-4e07-9cce-b867b4dc6821/2009-11-29_1605.png"><img'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/41648ccd-13e7-4e07-9cce-b867b4dc6821/2009-11-29_1605.png"><img class="embeddedObject" src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/41648ccd-13e7-4e07-9cce-b867b4dc6821/2009-11-29_1605.png" width="448" height="223" border="0" /></a>
Now the alternative or smarter architecture associated with this, is to have the event cause a reaction in some other piece of code somewhere else that you have more control over than an event structure. This is where a solid event driven producer consumer design pattern comes in handy. I won't go into the architecture of this here but what this does allow you to do is have the code to be executed in a place that can be easily invoked programatically or interactively. Do the amount of wires increase? yes. Does the architecture increase in complexity? yes. Do you have a much more flexible and debuggable piece of code for just a little more effort? No question about it absolutely.
So for the how-to-do-it portion of the code.
San,
It sounds like you are monitoring your code for the 0xFF Byte and want some other part of code to react when this happens.
The code that Jim sent is about spot on and the only other thing that you'll need to do is share the reference to that newly created user event around your codebase.
<a href="http://content.screencast.com/users/NJKirchner/folders/Jing/media/6f18fd2d-c4a3-4e6b-9c38-c62bac86edf8/2009-11-29_1617.png"><img'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/6f18fd2d-c4a3-4e6b-9c38-c62bac86edf8/2009-11-29_1617.png"><img class="embeddedObject" src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/6f18fd2d-c4a3-4e6b-9c38-c62bac86edf8/2009-11-29_1617.png" width="316" height="265" border="0" /></a>
The part of code that needs to fire the event, will use the 'Generate User Event' vi
<a href="http://content.screencast.com/users/NJKirchner/folders/Jing/media/8a8cf0e9-cc0d-445d-acf9-b9483e37fbcf/2009-11-29_1619.png"><img'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/8a8cf0e9-cc0d-445d-acf9-b9483e37fbcf/2009-11-29_1619.png"><img class="embeddedObject" src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/8a8cf0e9-cc0d-445d-acf9-b9483e37fbcf/2009-11-29_1619.png" width="235" height="488" border="0" /></a>
And all parts of the code that need to respond to that event need to dynamically register for that event and then have an event case that registers for it.
<object width="810" height="612"> <param name="movie" value="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e17f4a92-a2a5-428a-b981-2393f28ebc2a/jingh264player.swf"></param>'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/e17f4a92-a2a5-428a-b981-2393f28ebc2a/jingh264player.swf"></param> <param name="quality" value="high"></param> <param name="bgcolor" value="#FFFFFF"></param> <param name="flashVars" value="thumb=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e17f4a92-a2a5-428a-b981-2393f28ebc2a/FirstFrame.jpg&containerwidth=810&containerheight=612&content=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e17f4a92-a2a5-428a-b981-2393f28ebc2a/2009-11-29_1624.mp4"></param> <param name="allowFullScreen" value="true"></param> <param name="scale" value="showall"></param> <param name="allowScriptAccess" value="always"></param> <param name="base" value="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e17f4a92-a2a5-428a-b981-2393f28ebc2a/"></param>'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/e17f4a92-a2a5-428a-b981-2393f28ebc2a/"></param> <embed src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e17f4a92-a2a5-428a-b981-2393f28ebc2a/jingh264player.swf" quality="high" bgcolor="#FFFFFF" width="810" height="612" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e17f4a92-a2a5-428a-b981-2393f28ebc2a/FirstFrame.jpg&containerwidth=810&containerheight=612&content=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e17f4a92-a2a5-428a-b981-2393f28ebc2a/2009-11-29_1624.mp4" allowFullScreen="true" base="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e17f4a92-a2a5-428a-b981-2393f28ebc2a/" scale="showall"></embed> </object>
- 4
-
It is just another way to programmatically fire an event. It is the same as doing it registering an User Event (as jcarmody has posted) albeit most likely a little easier to start with, but not as flexible.
Bad bad bad jgcode. Bad!
San... Please disregard the any mention of the (signaling) property. This is something that is VASTLY abused and should be avoided at all costs. let me repeat, DON"T USE THE SIGNALING PROPERTY unless no other way of doing it.
Newbies use this methodology in excess and end up really regretting it down the line.
This tactic is not easily traceable, debuggable or extendable (going N+1)
Just look at some of the stock examples that come with LabVIEW for user events and dynamic events. Your effort will pay off 20 times easily in better code.
Long story short,
if you want reactive code to a user input, utilize an event structure to respond to that action.
If you want reactive code to a group or types of controls/indicators look into dynamic event registration
If you want code to react to programatically to different parts of programs (without user input) then look into user events.
and once again BAD JGCODE!
- 1
-
I as well am using 2009 and with Win 7 and all is well with my usual user defined value of 38.
I'm thinking something is hosed on your system LeCroy. I hate to mention it.... have you though of uninstall/re-install?
2 executables, 2 computers, 1 calls the other
in Calling External Code
Posted
FWIW, I utilize the technique of running a VI that exists within an lv_EXE's memory space in many applications.
SMenjoulet was actually one of the first people that I had seen do this elegantly. His creation was LabVIEWx or LVx.
The basic idea is that within the executable, you have 1 subVI that, at the beginning of the exe's execution, spits out an event reference and stores it internally within a shift register.
<a href="http://content.screencast.com/users/NJKirchner/folders/Jing/media/c77073a3-5a2a-48d8-bc0f-47f75f104659/2009-12-21_1231.png"><img'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/c77073a3-5a2a-48d8-bc0f-47f75f104659/2009-12-21_1231.png"><img class="embeddedObject" src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/c77073a3-5a2a-48d8-bc0f-47f75f104659/2009-12-21_1231.png" width="536" height="356" border="0" /></a>
Register the EXE for that event
<a href="http://content.screencast.com/users/NJKirchner/folders/Jing/media/79ce3e24-5d72-400a-91fa-bc69abd9aa44/2009-12-21_1231.png"><img'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/79ce3e24-5d72-400a-91fa-bc69abd9aa44/2009-12-21_1231.png"><img class="embeddedObject" src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/79ce3e24-5d72-400a-91fa-bc69abd9aa44/2009-12-21_1231.png" width="338" height="289" border="0" /></a>
REMOTELY (from another VI or lv_EXE) Open a reference to aforementioned EXE through VI server and call that aforementioned subVI via 'CallByRefNode' and pass in the command.
<a href="http://content.screencast.com/users/NJKirchner/folders/Jing/media/af6aaa05-302d-41cd-a94a-952c8ae82f0b/2009-12-21_1246.png"><img'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/af6aaa05-302d-41cd-a94a-952c8ae82f0b/2009-12-21_1246.png"><img class="embeddedObject" src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/af6aaa05-302d-41cd-a94a-952c8ae82f0b/2009-12-21_1246.png" width="1024" height="598" border="0" /></a>
And at the end of the day, when you run the Remote Export, you will have fired the event within the LV_EXE along with the data you passed to it.
Is this close to what you were looking for?
Also if you're using LV 8.2, there is an issue with an ini key "TCP.ACL = ...." that will need to be copied from the LV ini into your EXE's ini. This may resolve your error 7