-
Posts
784 -
Joined
-
Last visited
-
Days Won
10
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by PJM_labview
-
-
-
Hi Shaun,
Personally, I do not see the benefit to have one server in each location. I am assuming that you will have each IT department maintain each server location. If you really want to be in charge on the server (as opposed to use svn hosting) one will do just fine. You can have your user accessing the server over https.
QUOTE
Amount the many thoughts we had were the following (and these are all maybes):* having one per site could facilitate reusable components (ie a previous project carried out with a different customer could be branched) and make updating reusable components with applications easier
I am not sure that this is the best way to promote reuse. Reuse components should be accessible to every developer (ie from the palette) when they are working on a project.
QUOTE
...a separate repository for each customer we work with, or one single repository per site.In term of repository; you should consider having only one. You can have granular control over who access which part of the repository through defining the access right.
QUOTE
* Would there be any performance hit of having everyone working on the same repository (and would the associated large revision numbers be a problem)I never noticed any performances issues, but I don't think I ever worked on one with possibly more than 10 concurrent access.
Good Luck (and welcome to LAVA)
PJM
-
QUOTE (Attila @ Sep 19 2008, 08:43 AM)
In this case this is a useless feature of labview.I would have to disagree. Not being able to do scripting in build application does not make it a useless feature. You can create countless of helper tools using scripting that will make your job as a LabVIEW developer a lot more efficient (just search that forum for several example of such tool).
In regard to your particular use case, what were you trying to do? There might be alternatives in achieving your goal without using scripting.
PJM
-
QUOTE (JFM @ Sep 18 2008, 10:28 PM)
Have you tried to use named Queues? Just naming the queues after the caller VI plus some additional numbering should be enough.If memory is corrupted in shared clones, maybe named queues are better protected.
/J
This is a good idea; you could even use the clone instance name as the queue name since it is already unique.
PJM
-
Just to make sure, you don't have a release queue in the true frame of the upper loop right?
PJM
-
-
QUOTE (Aristos Queue @ Sep 15 2008, 11:55 PM)
QUOTE (normandinf @ Sep 16 2008, 05:26 AM)
Have you looked at this post from Darren about? The VI is password-protected but should work at runtime.I guess that's the output from LVClassPathFromInstance call you're looking for. I've used it to get the complete class hierarchy recursively. I don't have the result on my daytime computer, but could find it tonight. It's simply an implementation of Darren's VI with the tree control API fromNormthe Captain.Ah, I search LAVA before I start this thread and I did not found this post
From what I see I came up with a similar solution than Darren (using the linker info). I believe that this solution does not work in the runtime engine.
About, the "LVClassPathFromInstance", this was just a side question to know if the Get LV Class Path.vi work in runtime (which it does).
I am looking forward to see your recursive solution.
PJM
-
QUOTE (Aristos Queue @ Sep 15 2008, 01:57 PM)
QUOTE (Aristos Queue @ Sep 15 2008, 01:57 PM)
Your question about the content of that VI's a password-protected block diagram I will decline to answer.I am not sure what you mean by that (because I did not ask anything about the content of the password-protected Get LV Class Path.vi). If you infer about how I get the info about the method name, LV 8.6 hierarchy window now shows CIN/CLFN info (see image below). My question about this specific part was just about whether this work in the runtime engine.
I am more interesting in finding an answer about how to get the lvclass inheritance.
Thanks
PJM
-
QUOTE (Gavin Burnell @ Sep 15 2008, 12:54 PM)
Good point. I actually forgot I now use/need the Get Class Inheritance for lvclass file path.
QUOTE (Gavin Burnell @ Sep 15 2008, 12:54 PM)
The lvclass xml file does appear to contain a class genalogy property which (if one could parse the binary data) might be the key....Ya, I noticed that too. This what actually gave me the idea to try the linker info app.method on an lvclass file.
PJM
-
I am trying to make a VI that can get a class inheritance paths from a LV Object.
Additionally I want the VI to be able to do the following:
- Run in the runtime engine
- Get the inheritance without loading the classes in memory
I got one way of doing it right now that involve this VI (LabVIEW Root\vi.lib\Utility\LVClass\Get LV Class Path.vi) and getting the linker info of the parent classes recursively. Unfortunately this would not work when build in an exe.
There is a wiki article from Stephen Mercer on the LVClass Data Storage Format but this is more about the inherited class version that the inherited class path.
Has anybody already achieved this?
Thanks
Side Question to Stephen: Is the call to LV.exe method (LVClassPathFromInstance) in the Get LV Class Path VI implemented in the runtime engine?
PJM
- Run in the runtime engine
-
QUOTE (TobyD @ Sep 9 2008, 08:58 AM)
I shudder to think what could become of LabVIEW style guidelines if people start to rely to heavily on the diagram cleanup tool. I will admit that I have seen some VIs that were so poorly written that the cleanup feature actually helped, but I have yet to see a VI that I would consider "clean" after running this tool. I think it can provide a better starting point for cleaning up messy code, but my experience so far has been that quite a bit of work is still required to make the code presentable.I will have to agree with Toby on that.
Also, it has become so much of a second nature for me to use good style when coding (even when I am trying to be messy to use the diagram cleanup tool) that I hardly ever need it (I will try harder to not automatically do cleanup while I code). The few times I tried it, the end result required some more cleanup.
About the multiple properties dialog, I could not agree more. This is indeed a time saver.
PJM
-
-
-
Back on topic,
I created a small utility that add a temporary overlay on the VI icon of the active VI (see images below).
I put this thing together rather quickly so there is no warranties that it will work in every situations.
Before
After
I use the following convention:
Attached is the utility.
Installation Instruction: Copy the entire "LVOOP Utilities" folder under your "project" folder in LabVIEW and then you will have a new menu under tools (once LV restart) as seen here -->
Note: OpenG Libraries are required
-
I will say that Ben is probably right.
This has happened to me countless time, and every single time this was a lifetime issue.
Scenario Example:
Create Queue in a VI
Put Queue refnum in LV2 Gbl
Launch (asynchronously) other code that need the Queue (other code call LV2 Gbl)
Create Queue VI stops --> Queue refnum become invalid because LV garbage collect it.
--> Get error in you asynchronous code
PJM
-
QUOTE (Aristos Queue @ Aug 29 2008, 08:21 AM)
...Strikes me as a strange request. Why do you care when you're writing the function what the scope of the function is? I can understand being interested in that when *calling* a function (ie, an annotation on the subVI call), but not when writing it. I don't know of any programming language that has that sort of notation in its code nor any language's IDE that provides that kind of visual feedback when writing the function...I agree that when writing a vi for the first time this is not useful at all (but this will be in future editing). I also agree with the glyph suggestion on the SubVI call (this is actually a great idea :thumbup: ).
Note: In the my previous post entry, the screenshots were never intent to mean that I need the glyph on untitled VI. I guess I should have use an existing VI to add the glyph to. Sorry about that confusion.
Basically, at any given time a typical LabVIEW developer has a fair amount of VIs opened (which he may not have written). There is currently no (quick, at a glance) way to know what is the scope of opened VIs.
These VIs may have been opened through various mechanism (lvclass project view, VI Tree, Explorer ...); they may or may not be member of the class, they may or may not be utility reuse code.
At the moment, the only reliable way find the access scope is to use the "locate in project" openg utility.
So I think there is also a need for knowing the access scope of opened VIs (along with the "glyph on SubVI call" idea).
PJM
-
I don't know if anybody else feel the same way, but I would like to have a visual indication [somewhere on my VI] of class member access scope (public, private, protected). May be a glyph in the lower left corner (where project namespace/instance is usually located) or somewhere else will really be useful.
Alternatively a word (public, private or protected) in the title bar (possibly activate through an ini key) will be good as well.
PJM
-
QUOTE (NeilA @ Aug 28 2008, 05:26 AM)
NeilA,Hi there,Here is an excerpt from the xml from altova:-
<Parameter xmlns="" Name="MaskSet1" Type="Mask">
<ARRAY xmlns="" Name="MaskXcoord" Type="FloatArray">
<VALUE Col="1">-2.000000000000000e+001</VALUE>
<VALUE Col="2">-1.500000000000000e+001</VALUE>
<VALUE Col="3">1.500000000000000e+001</VALUE>
<VALUE Col="4">2.000000000000000e+001</VALUE>
<ARRAY xmlns="" Name="MaskYcoord" Type="FloatArray">
<VALUE Col="1">-3.000000000000000e+001</VALUE>
<VALUE Col="4">-3.000000000000000e+001</VALUE>
<VALUE Col="2">-2.500000000000000e+001</VALUE>
<VALUE Col="3">-2.500000000000000e+001</VALUE>
<ARRAY xmlns="" Name="MaskId" Type="IntegerArray">
Any help would be greatly appreciated and thanks in advance.
As John mentioned, you could try the EasyXML toolkit. I just spent a few minutes to create a LabVIEW Data structure to accommodate your XML data (to read it in LabVIEW) and it work fine (see screenshot below).
PJM
-
QUOTE (Darren @ Aug 27 2008, 08:01 AM)
Daren,
I there a way for you to share these shortcuts (I am the lazy type...)?
PJM
-
QUOTE (JDave @ Aug 26 2008, 01:41 PM)
Dave,I was hoping to get some discussion on the points I brought up ... But if nothing else,What I really want is to know if there is some way to know definitively WHO the icon editor is 'editing'. This would be necessary for allowing things like editing the description. Can someone from NI point us in the right direction here? Is it at least something under consideration for future versions of LabVIEW?
From my perspective, I do not expect the icon editor to edit anything but the icon (so editing the icon description is not something I would do there).
And as I mentioned earlier, I think and good icon editor replacement should implement all existing NI icon editor functionalities.
PJM
-
-
QUOTE (Chris Davis @ Aug 22 2008, 09:08 AM)
In regard to redesign, I went through the excercise a few years ago to create a "n-button dialog" vi (similar to NI 3-buttons but with more functionalities). For more info about it see this blog entry.
I used a state machine like architecture (more specifically a single loop string based queue message handler). Granted it is probably slower than Stephen implementation but I think that the flexibility and simplicity of this architecture outweigh the performance issues.
PJM
-
Jeff,
For once I am not blaming NI on this one. Windows gave me a BSOD and after rebooting and restarting LV this is what I got.
I was just venting my frustration...
Sorry about that.
About improving the second dialog I think it should be consistent with the first one.
You said: "we must not have any un-recovered files remaining in the autosave directory for the version of LabVIEW you are launching".
What about having a cancel button that would archive the files (like there is a Cancel button on the first dialog) instead of a "delete backup files". Deleting file seem to be very drastic thing to do. It just does not feel right.
PJM
-
Creating a Find text function
in LabVIEW General
Posted
QUOTE (Aristos Queue @ Sep 23 2008, 07:54 AM)
I think John solution works well for text with no formatting (using only one font). However as you pointed out earlier when you start to consider a string with multiple fonts and multiple formatting (bold, italic...) this is getting quite tricky.
PJM