-
Posts
3,905 -
Joined
-
Last visited
-
Days Won
34
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Jim Kring
-
After "Variant-Array to Variant-Cluster" all attributes are gone
Jim Kring replied to Bonagel's topic in LabVIEW General
QUOTE (Bonagel @ Apr 18 2008, 12:02 AM) I see your point. You are correct. Set Data Name (and probably several other of the OpenG VIs) do not preserve the variant's attributes. I don't think the attributes survive the Variant to Flattened String and Flattened String to Variant operations (the attributes aren't in the flattened data or type descriptor). The only way to preserve the attributes would be to read them all on the incoming variant and write them in the outgoing variant. It might be feasible, but would take a bit of work and could have some performance implications. -
QUOTE (ASTDan @ Apr 17 2008, 04:13 PM) Hi Dan, Your solution looks OK to me and I'm happy to see that you're using OpenG One suggestion: for the reordering operation, I would use the OpenG "Reorder Array" function, as shown below: Download File:post-17-1208478378.vi Cheers, -Jim
-
I upgraded early last week and haven't have any problems. I've used it in several projects and found that it fixed a build issue we were having in one of them (related to locked libraries).
-
There was a bit of an uproar about this, but it seems to have died very quickly. Apple makes good products that are useful to people. So, it's not a big deal for them to make it easy for people to obtain, and those who do get it on accident get a pleasant surprise.
-
Here's what I want to do... I have a LabVIEW project that I'm building into an EXE w/ Installer using the App Builder in the LabVIEW project environment. We've decidided to use the version number of the EXE (defined in the EXE build specification) as the definitive version of the software and let LabVIEW auto-increment the build number. The installer build specification has its own version number, which I want to be identical to the version number of the EXE (since, it doesn't make sense to have a version number for the installer that is different from the version number of the EXE). And, given that one important goal of software engineering is to have a fully automated build process (The Joel Test >> Test 2), I (passionately) dislike to have to manually sync the installer build spec version number with the executable build spec version number. One feature that would address this need, is to be able to specify (in the installer build spec) that the installer's version number should be the same as the EXE's build number. However, I'm pretty sure that this isn't possible. What I think I might do is create a VI that sits above the entire build process and syncs the two version numbers by reading and modifying the project (*.lvproj) file, before invoking a build on the build specifications, programmatically using <LV>\vi.lib\AppBuilder\BuildTargetBuildSpecification.vi. Can anyone think of a better way to achieve my goal? Thanks, -Jim
-
Map, implemented with classes, for 8.5
Jim Kring replied to Aristos Queue's topic in Object-Oriented Programming
QUOTE (Aristos Queue @ Apr 9 2008, 11:40 AM) It might be because I've never heard of this idea before. What exactly would this be? I think that Jason's referring to the possibility of having a new AssociativeArray by-reference sibling to the Queues and Notifiers types+functions that enjoys the same sort of edit-time type propogation (e.g., Queue and Notifier references contain the type of Queue/Notifier element data, which causes the Queue and Notifier functions to adapt to these types). Just as Queue and Notifier element/data types propogate to the primatives, it would be nice if the key and value types of an AssociativeArray could propogate to primitive Get/Set/Delete/etc. functions. Yes, we can do it with OOP and inheritance + dynamic methods, but it would be nice if AssociativeArray could be a LabVIEW primitive type+functions. -
QUOTE (Val Brown @ Apr 4 2008, 10:29 AM) Actually, I posted the link to encourage brave souls to upgrade and report back, here. I haven't upgrade, yet, but I'll probably do so, on a virtual machine and run some tests on my existing 8.5 projects. I would assume that since it took so long to get this release out, NI has had a lot of time to test it thoroughly and iron out any kinks.
-
http://www.ni.com/support/lv8_51.htm
-
QUOTE (alfa @ Apr 2 2008, 11:32 PM) NIWeek 2008 is coming up. It's not specifically on these topics, but I'm sure you'd find it interesting (not to mention, the night-life on 6th Street).
-
Should Primitive-like Utiltiy VIs be Reentrant?
Jim Kring replied to Jim Kring's topic in Application Design & Architecture
QUOTE (Aristos Queue @ Apr 2 2008, 03:20 PM) I'm starting to think that a similar approach might be good for OpenG, too. If a user has a need for extreme performance, they can always optimize by making copies of the OpenG VIs and configuring them with subroutine priority. Going off on a tangent, this makes me wonder if it might be nice to have a SubVI Node Setup option to make a specific subVI call execute as a subroutine. This would allow users to optimize callers without having extra copies (on disk, in thier project) of OpenG VIs. Another possibility would be to add poly instances that are marked as subroutine, but this would double the number of poly instances, so it's not really feasible. -
Should Primitive-like Utiltiy VIs be Reentrant?
Jim Kring replied to Jim Kring's topic in Application Design & Architecture
QUOTE (Aristos Queue @ Apr 2 2008, 01:59 PM) I wonder about combining the subroutine and reentrant VI setting. The subroutine setting might greatly limit the memory used by each reentrant instance. Do you have any thoughts on this? Has NI considered making any of it's primitive-like functions subroutines? -
When do you use Subroutine priority?
Jim Kring replied to Jim Kring's topic in Application Design & Architecture
QUOTE (rolfk @ Apr 2 2008, 12:33 AM) One thing that I wonder, is whether OpenG primitive-like VIs that meet these criteria should be configured as subroutines. Will this help more people than it hurts? Is it better to... A) leave them as non-subroutine and let people who need the extra performance use local copies that are marked as subroutines or... B) make them subroutines and let people who are negatively affected use local copies that are non-subroutines It would seem that the number of people that would be helped by the subroutine setting is far greater than the number of people that would be hurt by the subroutine setting. Am I off base, here? Thanks, -Jim -
I already sent Michael a PM, but I could used another post on my count too (thanks for the great idea, Justin). Happy Birthday, Michael :thumbup:
-
When do you use Subroutine priority?
Jim Kring replied to Jim Kring's topic in Application Design & Architecture
QUOTE (Michael_Aivaliotis @ Apr 1 2008, 01:20 PM) I know that the subroutine priority can yield huge benefits (N-fold improvements in performance) when used appropriately. What I'm trying to pin down are the guidelines for when you'll see such improvements, as the misuse of this setting could certainly result in performance degradation. -
When do you use Subroutine priority?
Jim Kring replied to Jim Kring's topic in Application Design & Architecture
FYI, I found some good comments from Greg McKaskle in this thread on the NI forums. -
When do you use Subroutine priority?
Jim Kring replied to Jim Kring's topic in Application Design & Architecture
QUOTE (David Wisti @ Apr 1 2008, 12:08 PM) That's an interesting node setting -- I wasn't familiar with it, but found some info http://zone.ni.com/devzone/cda/tut/p/id/4682' target="_blank">here. From what I gather, it's probably most useful for inter-process communication -- optimizing the calling application rather than optimizing the performance of the subVI/subroutine being called. -
There is a VI execution priority setting called subroutine. Explainations of this setting can be found here: LabVIEW Help >> Execution Properties LabVIEW Advanced Programming Techniques >> 9.10 Subroutines in LabVIEW While I understand some of the basic principles of the subroutine setting, I'm not 100% certain about the best practices and rules of thumb for when to apply this setting and when to avoid it. Does anyone have any thoughts on this matter? Note that this questions applies to a design decision in a new OpenG candidate. After this discussion, I'd be happy to consolidate the information into a Subroutine page on the LabVIEW wiki.
-
Help design a new OpenG VI, Average 1D Array
Jim Kring replied to Jim Kring's topic in Announcements
Update: After an initial round of comments and discussion, the cadidate contributor (Christopher Relf) and sponsor (Justin Goeres) have revised the functional spec. Here's what the VI currently looks like: This opens up another Public Comment period for you to provide your valuable feedback. We appreciate any thoughts you might have. Please, take a look at the functional spec and let the OpenG developers know what you think, before this VI shows up in your palette -
Drag and Drop transaction prevent other events from being fired
Jim Kring replied to PJM_labview's topic in LabVIEW General
Shouldn't you be finding easter eggs in LabVIEW, today, instead of bugs? (it is Easter Sunday, afterall) -
QUOTE (Justin Goeres @ Mar 20 2008, 09:04 PM) The result I get is Decimated Array = {0,3,6} (It should be {0,3,6,9}). Likewise, when I run it with Array = {0,1,2,3,4,5,6,7,8,9} Decimating Factor = 4 The result I get is Decimated Array = {0,4} (It should be {0,4,8}). It's easy to find plenty of other examples where the last element in Decimated Array is missing. EDIT: A little bit more testing leads me to believe that the Yuri33's code works as long as Decimating Factor divides evenly into the size of Array. If it doesn't (i.e. if R>0 coming out of the Quotient & Remainder), the last element of Decimated Array is chopped off. Justin, I did some testing of LabVIEW's built-in decimation function. It truncates the trailing (remainder) elements. I have no idea which is the preferred behavior. One one hand, it's nice not to lose data (so you wouldn't want the data truncated), and on the other hand if you are going to create several subarrays with the decimated data, it's nice to have them all the same length (so you would want the data truncated). So, I would probably add an optional argument to this VI called truncate remainder. -Jim