Jump to content

Yair

Members
  • Posts

    2,869
  • Joined

  • Last visited

  • Days Won

    44

Everything posted by Yair

  1. 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.
  2. 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.
  3. 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.
  4. Yair

    Alfa String

    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?
  5. Yair

    Alfa String

    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?
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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:
  12. 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).
  13. 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.
  14. 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.
  15. This poll kinda feels like a "choose your own adventure" book. :laugh: Personally, I see the moving and renaming options as being the same thing and if possible you should probably unify them to simplify the poll.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. OK, so I didn't really read the entire thread, but I think maybe the documentation should be updated. I wanted to have an array of "current values" updated from dynamically called VIs. I could have done it many ways, but I figured the quickest would be to create a notifier for each VI and go over those notifiers in a for loop with Ignore Previous set to F, like the attached example, right? Well, no. It was wrong. As the help says, each node remembers the time of the last notification, and as Stephen said here, remembering a separate time for each reference is apparently not worth it. OK, since I'm using 8.6, I did a quick workaround by replacing the notifier with a lossy queue, which works fine, as can be seen in the example. I have to say that it took me a while to figure it out, though. I think the help needs to be more explicit about how this specific case (iterating over notifiers) will not be handled as the user might expect. P.S. I haven't looked closely at how the W4MN and the new notifier primitives are supposed to work, but a quick test seems to indicate that they do not do what I want.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.