Jump to content

LAVA 1.0 Content

Members
  • Posts

    2,739
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by LAVA 1.0 Content

  1. Your point is well taken, the example was made in ~5 minutes. My actual implementation is multithreaded using VI server with much more complete error handling and notifiers for signalling. I guess I should have spent a little more time.... BTW, I did mention that I couldn't share my actual code, and included (in bold) the label "Simplified Example". The intent was to suggest an improvement/technique (as requested) by using queues instead of a functional global and processor/memory expensive array manipulation to streamline data acq and provide access to decimated data. Some of what I've done is outlined in this thread. I really wish LabVIEW queues were lossy
  2. I can't share my exact code, but I can explain what I did in my project. I have a high speed data source that is received as strings (TCP Read). I created 2 queues to handle the data; one for full rate logging to disk, and the other for the decimated data. My TCP Read is in a while loop. I use the index of the loop and the quotient/remainder function to decimate the data. When the remainder = 0, then I insert the string into my decimated data queue. You will need to service the queues or you will run out of memory if the size of the queue is undefined (this is default?!). I have separate loops that flush the queue and write the data to disk. In my case, I use the decimated data to feed my UI and calculate averages for a smaller set of data. Simplified Example: Download File:post-949-1170853535.vi (LV 8.0)
  3. This was reported to R&D (461F39IG CAR ID) and was fixed in LabVIEW 8.20. See http://forums.ni.com/ni/board/message?boar...e.id=6318#M6318
  4. Why not just create a topic (or continue using this one) and make entries in it? Sort of like the veterans do with the bug list on the NI Forums. It allows people to communicate, and Michael has created new forums from various topic content in the past, such as "Rusty Nails" :thumbup: I think the topic can be pinned by a LAVA admin to show up at the top of the forum (like the NI News sub-forum under The NI world) if it proves to have enough activity. I'll try to contribute here.... NI recently issued a press release regarding U.S. Patent No. 5,301,336 (' '336 patent') that provides NI with patent protections on certain technologies through April 2011. I haven't read that much about it; so... what does this '336 patent' mean to NI, and more importantly, us?
  5. This driver is listed as an IVI driver. IVI drivers require some lower level OS specific software. There MAY be IVI drivers for Linux, but you should look for plug-and-play drivers for your instruments. These are basically VIs that can be loaded on any platform. You can also customize the driver; IVI interfaces are typically DLLs and you can't "see inside". Given a choice, plug-and-play drivers are the way to go :thumbup: your tkdpo4k has a plug-and-play driver located here
  6. Well, the kind of application you need to develop will define the best version to choose. IMAQ and DAQ drivers for Linux are often a problem... You should be able to find documentation on NI website about what is/isn't support on Linux version. I'm absolutely not a fan of windows, but if you have to choose between Linus/MacOS/Windows to develop LabVIEW application, I would recomand to choose Windows it if you want to be sure to avoid drivers nightmare. Of course as pointed Tomi, if you can afford, a departement license would avoid to have to choose.
  7. There are other issues also, what is the frequency and amplitude of your signal source and the sample rate and sample time configured for the channel of your daq card you are connected to? see here. The first place I start to determine connectivity is in MAX. Create a task for the input channel configurre it in MAX and use the test panels. Once you have a good signal in MAX, Then go to LabView. In the I/O control panel grab a DAqMX task control drop on front panel, select the Task from the pulldown, in the block diagram grab the DAQmx read wire in the task control and wire a graph to the output. You will need to select the apropriate read from the polymorphic VI selector, to match the way you configured it in MAX. Run the VI. This is just one of many ways to code and configure a channel, Express VI, DAQ assistant, Configured in Labview without MAX .... To summarize, if you have to ask the question, maybe your not the right person to determine what the pertinent information is.
  8. I am not sure how many licenses you have, but If you have at least 5, you could get a VLA. If you have a VLA you have an option of computer based or user based licenses, if you have user based you can have two licences per person (not simultaneously) this would effectively double the number of machines you can have Labview Installed on. The more license you have on the VLA the more of a discount you get for additional licenses. One caveat is you must have all licenses on a SSP (discounted). I may have got some of this information wrong, take a look at the VLA and see if it will help. :thumbup:
  9. Lost of good ideas in this thread on "how to measure coding style", but a bit too "human dependant"... I mean... In the end, who, better than a couple of experienced developpers to judge coding style ? Without any pretention, I just throw a "keep it simple - keep it silly" idea : why not just doing "brutal statistics" on the whole hierachy using "Metrics:Advanced" (see screenshot). Defining an "indice"* with a statistic such as : - number of controls/indicators per VI, - number of globals/locals call per VI, - percentage of VI reading/writing a global (=good or bad use of a global, IMO),.... list to be continued by people more experienced Of course, nothing will replace human analysis, but IMO statistic is a very good way to perform a pre-selection coding style ; the indice would just say "novice style : should attend LV basic 1 training", "intermediate : should attend : Intermediate LV training", and so on... * : not sure of that word : "indice"
  10. Great idea robijn ! This is a lot faster than the .NET call thanks !
  11. How about debug licenses? I remember using these at a place I worked previously, specifically for fixing "in situ" problems. They aren't free, but they aren't full price either. I tried to find pricing before posting this, but couldn't ...
  12. Thanks a lot Dave that's very clear :thumbup: It's the first time I use .NET...
  13. Hi Dave and thanks for your help, I do have .NET access but I am not familiar with it... What constructor shall I select from the list in the "Select constructor" window ? It seems to me like I need to have a dll and use the browse function to point on it, am I right ? Which dll shall I look for ? Thanks in advance
  14. Hi all, I'm building a Vision application that will run on different PCs with different amount of RAM from 512Mo to 4Go. Basically images will be acquired with a PCIe 1429 to the system memory, so in order to prevent the user from allocating more memory than disponible, I'd like to programatically get the amout of free ram memory (like we can see when opening window's task manager). Is that possible and how ? Thanks in advance for any help
  15. Happy Lava-versary Tomi! My job doesn't allow me the time (or liberty) I'd like to for sharing, and I'm a bit jealous of your contributions.
  16. It worked... Each class always has a typedef, the name of which is of the form MyClass.lvclass:MyClass.ctl. One can open VI reference to this typedef using Open VI reference and a technique described by Ton. Having retrieved this reference one can then find out the library into which the typedef belongs to. I however noticed that I really needed the reference to the typedef itself and not the class. jimi
  17. What do bytes 08-11 in type string of a LVClass mean? The bytes get a hex value 0xFFFFFFFF for LabVIEW Object but the value for other labview classes varies. The variation does not depend on the class but something else. Does this somehow refer to the current application instance or has anyone figured out the meaning of these bytes? The indexes above are assumed to start from zero i.e. byte 08 is the 9th byte in the type string. The first two bytes define the length of the type string in a big-endian form. The bytes 02-07 are always the same for all LabVIEW classes and I assume these refer to LabVIEW classes in general. The type string for these bytes seems to be always 0x4070001E0000.
  18. Hi, I'd need to get a reference to a LabVIEW Class that is currently in memory. All I have is the class name in a format "MyClass.lvclass". The problem is that I don't know the path of the class but only that the class is currently in the application memory. If there is a way to get a reference using the class name, that would be superb. If this is not possible, is there a way to get the path of the class if you just know the name and that it's currently in memory. jimi If I get a reference to all VIs in memory, that is fine as well.
  19. Thanks! :thumbup: p.s. Do you think it would be possible to have revision history in the document so that it would be easier to know what are the new changes in the document...
  20. I don't think the license will be a problem for Stephen....
  21. It's a FEATURE! I wonder what VI Analyzer would report ....
  22. Congratulations! If I'm lucky enough to attend NIWeek 07, I'll be closely watching what type of computer you use for any demos you give ... I'm thinking of a new PC to get the kids to stop fighting between the P-II 300 MHz and P-4 2 GHz computers in our office. Maybe my next purchase will let them fight over Mac VS PC instead
×
×
  • Create New...

Important Information

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