-
Posts
2,870 -
Joined
-
Last visited
-
Days Won
44
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Yair
-
Without looking at VIPM itself, I'm guessing this is simply a ring with a picture overlayed on top of it and changed whenever the ring's value is changed. If the image itself isn't clickable (which I don't remember offhand), then this is very easy to accomplish.
-
Personally, I can't say I see the use in this feature, although it's definitely nice to have R&D people take some free time they have left and use it to do something for the users which would probably not get done otherwise. Now, if NI was to create functionality which would make the sharing of code easier (like the tool you mentioned or like the CCT), that would be something, but would obviously take more effort.
-
QUOTE (neBulus @ Jan 22 2009, 04:35 PM) Actually, this has nothing to do with LabVIEW. It's simply part of the Brain's tagline. QUOTE (mike_nrao @ Jan 22 2009, 05:58 PM) I only want stuff on Labs that truely is nearly ready for release so I can confidently use it knowing there's little risk that, down the road, major refactoring of my code will be necessary. You won't get it. As Chris and Chris mentioned, stuff on NI labs is experimental and may never be released. It seems to have partial support, but no guarantee for long term support. Incidentally, I think you're not the only one who has this impression. I remember an NI support person saying once that they want people to use the stuff in the labs in their actual products. Michael, I think that some users who run across "official" NI stuff do expect some support. It might be easier for NI to simply post the relevant license files to somewhere which isn't as public. Even so, I'm sure this will generate support calls which NI would have to handle before finding out that the problem is with scripting. It's much easier to just lock it so that the chances of people running up against it in the wild are lower.
-
This has been asked before. At least around the LV 8.5 timeframe, there was no property which returned if an input was wired or not and I doubt this was changed. There were some kludgy workarounds, but I found the invalid default value to be the simplest and easiest.
-
Go through these.
-
Go through these.
-
The half cannibals eat the human part of you. Since on average the human part only consitutes about 32.4% of you, that means that when half of you is eaten, you get to be below animal level. Now, since 97.7% of the population are below animal level, that means that the scientists have eaten 48.85% of all the humans. That's shocking. I also understand that little children taste the best, which is why Santa goes to so much trouble (Santa's widely known for being a mad scientist. I mean, who else would dress like that and grow that kind of facial hair?). I say we find these "scientists" and burn all of them, especially the ones responsible for creating computers and computer networks. QUOTE (jcarmody @ Jan 15 2009, 01:26 PM) M-I-double S-I-double S-I-double P-I, right?
-
The half cannibals eat the human part of you. Since on average the human part only consitutes about 32.4% of you, that means that when half of you is eaten, you get to be below animal level. Now, since 97.7% of the population are below animal level, that means that the scientists have eaten 48.85 of all the humans. That's shocking. I also understand that little children taste the best, which is why Santa goes to so much trouble (Santa's widely known for being a mad scientist. I mean, who else would dress like that and grow that kind of facial hair?). I say we find these "scientists" and burn all of them, especially the ones responsible for creating computers and computer networks. QUOTE (jcarmody @ Jan 15 2009, 01:26 PM) M-I-double S-I-double S-I-double P-I, right?
-
Correct you are. The funny thing is that I commented on Christina's post back when it was new saying that this distinction was important and that I'll remember it for next time. Then, of course, I promptly forgot about it.
-
I don't know the answer, but I doubt that at least the 600x will be able to do this. They're simply not designed for this and even if they will be, I'm not sure you'll be able to generate a reliable 20kHz software clock on a desktop OS. If you want to know the answer, you could try calling NI, but the simplest solution is probably going with crelf's suggestion.
-
Pass the Ref or pass the name?
Yair replied to John Lokanis's topic in Application Design & Architecture
If you're only storing the references as variants, then at least you don't have serious memory issues, but you still need to convert each variant to the proper type before using it and I find it to be too complicated unless the FGV code is really complex and you don't want to duplicate it for every data type. In that case, you can place a wrapper around it for each data type, but you will still have some performance issues. -
The question is very general and would depend on the nature and manifestation of the memory leak, but usually, a reasonable way of finding what's causing something is to place case structures on parts of the code and then enable and disable those parts as needed. Things which are usually liable to cause memory leaks are resizing operations in loops (e.g. Build Array, Concat Strings) and opening references without closing them.
-
Pass the Ref or pass the name?
Yair replied to John Lokanis's topic in Application Design & Architecture
QUOTE (vugie @ Jan 8 2009, 03:04 PM) And performance issues (memory copies) and you lose the strict typing, so it's not as convenient and has more chance for bugs. I generally only use variants when I need to transfer different data types on the same wire. QUOTE (TG @ Jan 8 2009, 08:17 PM) I do remember seeing behavior like you descrivbe in some of your earlier posts. It seems to work fine as long as the top VI stays active. From the second sentence, I'm guessing you simply ran into the standard LabVIEW behavior regarding reference - a reference is automatically destroyed when the top level VI in the hierarchy where it was first created stops executing. In the case of named queues, each obtain is considered as a separate reference and the queue itself is not destroyed until all the references are destroyed. -
QUOTE (Gary Rubin @ Jan 7 2009, 09:42 PM) It hasn't, its basic datatype is still t0, dt, Y[]. As I said, I simply haven't looked it. Ben, I might have met Tim at NIWeek (I remember meeting a couple of DSA guys), but I have a terrible memory. Of course, I remember meeting Mike, but I think the only way you can avoid noticing Mike is if you have Putnam in the same room making even more noise. :laugh:
-
QUOTE (Gary Rubin @ Jan 7 2009, 09:17 PM) Many of the systems I make do not require a graph representation of data (not everyone using LV does DAQ all the time). For those who do, my preferred tool is usually the XY graph, since each point has an X value as well. On occasion I use the chart as well. P.S. I never really used the WF data type either (or the dynamic data type, for that matter).
-
Pass the Ref or pass the name?
Yair replied to John Lokanis's topic in Application Design & Architecture
Note that you don't need to pass the names. You can just use the same logic to generate the name in each VI (or use constant names). If you're passing something, you might as well keep doing what you're doing now. As the others suggested, I also prefer using a simple FGV to obtain references to shared resources. Essentially, the Get action usually checks the reference and if it's invalid closes and opens it again. Just note that if you're using dynamic VI calls you need to make sure that you create the reference in a hierarchy which will not be unloaded. -
I never used the waveform graph and didn't really notice it in the options. Gary is probably right and the WF graph is also a correct option. As mentioned in other threads in the past, I also agree with the others regarding the phrasing and incompleteness (sometimes even incorrectness) of the questions. As for the other questions you posted, you should try looking into the answers yourself. For example, the one about the charts should be easy enough - just try it.
-
All of the following are correct ways to view a SubVI on a Block Diagram, EXCEPT: Modular Node DAQmx channels and virtual channels are a collection of property settings that include all of the following, EXCEPT: Not sure, as I don't really use it. The DAQ Assistant can perform all of the following operations, EXCEPT: Arbitrary Waveform Generation. Description and help information for a VI may be placed: Both A. and B. Which of the following only plots data in evenly distributed intervals along the x-axis? Waveform Chart I'm pretty sure that the help for the description window explains this, but the tip is for the tip strip - you have to hover over the control with the mouse cursor to see it. I'm assuming that the time delay express VI simply calls the wait primitive, but can't be sure. You can check it by right clicking it and choosing to open its FP.
-
Best Architecture for Time-Based Events?
Yair replied to lvb's topic in Application Design & Architecture
The problem with absolute time is that at least in Windows the timer has a ~16 ms resolution. In Windows, you can get sub-ms resolution by calling the performance counter API functions and there should be some examples VIs in the forums. You should be able to do something similar in other OSes. I didn't understand your desired architecture exactly, but it sounds to me like the most practical solution would be using a timeout mechanism. You can do this with an event structure's timeout event or with any of the synchronization primitives. This makes LabVIEW wait the desired time and allows you to break the wait if needed. -
Sorry, you can actually browse for an icon from the icon dialog and it adds it to the project. What I was thinking of was that the icon had to be in the project and so if I removed it I did not have an icon, but let's accept that this is reasonable behavior. One thing I did see is that you expand the dependencies item in the builder, so if you want to modify the VI properties when building, you have to explicitly include it in the project. Again, I haven't worked with the project enough to be able to formulate a worthwhile opinion, so there might be good reasons for this.
-
Help! Recommend SCC for High School FIRST Robotics Teams?
Yair replied to Ben Zimmer's topic in Source Code Control
I can't refer specifically to Mindstorms, but many people like using Subversion with TortoiseSVN as the client. It matches all your requirements (although you'll probably want to create a small document to make the setup easier for them) with the advantage of being fast for binary files (at least when you use the default checkout-update-commit model, as opposed to the lock-modify-unlock model). There are probably quite a few threads around here (and in the NI forums) discussing SCC, so you might wish to do some searching. Note that with any SCC option, you'll probably want to get the students to use a workflow where they don't have to merge changes as this can be a pain in LabVIEW. Maybe the merge tool in newer versions helps with this, but I haven't tried it, so I can't say. -
OK, I'll have to look that discussion up. I figured there probably was, but the LAVA search generally isn't great and I was feeling lazy. I only used the 8.x builder once, but I've also felt the need at least to be able to browse to select files to be added to the build. For instance, why would I want to have the icon for my application in the project? I'm only interested in it when I go to build the app. I understand the logic behind this (it's part of the project, it allows to show missing items, etc.), but in this example it simply disrupts the workflow (I go to build the app. Oh, I need an icon. So, a minute later I created one and now I need to add it. Now, where's the browse button?). It might be easier if we had a browse button in the relevant sections of the builder which would automatically add the selected files to the project.
-
QUOTE (Aristos Queue @ Jan 2 2009, 05:53 AM) Can you expand on that? I only really started using 8.x recently and would prefer avoiding it if there are good reasons.
-
Sorry, I made a mistake. I thought that a notifier which times out returns the latest notification, but it actually returns the default data for its data type. That means I couldn't have done what I wanted even with a single notifier.