Jump to content

orko

Members
  • Posts

    576
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by orko

  1. Welcome, Deirdre! Sorry I couldn't make it out to NIWeek this year, but I'm greasing the skids with the boss to try for next year. I just found out about NI Labs last week, it looks promising! I'm checking out the "Generic Container Map", although I haven't played with it enough to be sure what application it would have for me personally. Especially since there isn't a way to use it inside a built executable (yet).
  2. Check out the "Format and Precision" properties of the wafeform chart. In it you can drop down the X-axis and select the time format you want (absolute or relative). Here's an example: http://forums.lavag.org/index.php?act=attach&type=post&id=6634 (LV7.1.1)
  3. QUOTE(NormKirchner @ Aug 15 2007, 01:36 PM) I can hear the new coined term in use now.... "Wow! That last release was a real asschoker."
  4. QUOTE(NormKirchner @ Aug 15 2007, 01:18 PM) Semantics, I guess Sometimes when I read someone's post I remember the problems I had to solve, and read things into it. Maybe I did this here. For arrays of clusters my biggest "gotcha" was when I realized that you couldn't fire events on controls inside one of the clusters in the array and tell which specific control fired it, for example a mouse enter/leave event on the second element cluster's boolean... or a shortcut menu activation on the third element cluster's numeric... without some coding involving coordinate mapping, you wouldn't easily be able to tell which element's boolean/numeric control that the mouse was over when the array element event fired. With value change events you can test which one changed as you and others have pointed out. One other caveat of having clusters inside of an array is that it makes it impossible to change the behaviour/properties of a specific control inside one of the clusters, like blinking or disabling, since all of the properties of each element follow suit and they all blink/disable. I've personally found it much easier when dealing with multiple identical clusters to put them into another cluster versus an array, then translating the values into an array of clusters for internal data manipulation. But it does depend on what you're after, as always.
  5. QUOTE(Dan Bookwalter @ Aug 15 2007, 07:56 AM) It depends on how technically savvy the bosses boss is... You can show them all the technical bells and whistles of what LabVIEW is capable of doing (and I would) but what really impresses most of the management types is the support behind the software, and it's relatively short learning time for new employees. You may want to show them the developer's zone and all of the established resources that are freely available, including the impressive store of drivers available through the IDN. Of course, let them know about the hundreds (thousands?) of users that collaborate and share information/sollutions on the LAVA and NI forums. For our convincing, all we really had to show them was that there was a programming environment that was well suited for engineers and would integrate with *any* instrument that they could think of (even all of the obsolete junk that was still powering our HPBasic test racks). But the key was to convince them that it would continue to support new advances in technology and would be easily learnable by new hires in the future. We also let them know that there were NI supported courses that would get someone up to developer speed in under a month's time. That impressed the heck out of them. Everything after that was gravy. Good luck!
  6. orko

    Howdy

    QUOTE(Cat @ Aug 15 2007, 12:34 PM) An excellent place indeed! Welcome, Cat. ( I can't believe that username wasn't taken yet... )
  7. QUOTE(NormKirchner @ Aug 15 2007, 08:25 AM) I second the vote for the toughbook. Their ruggedness is well known, and as a plus they almost all come with a built in DB9 serial port. Check them out here or here or check out the 3D showroom here.
  8. QUOTE(Daklu @ Aug 14 2007, 01:47 PM) I fear we may be digressing slightly from the original question (event detection for cluster elements inside an array). I thought the poster was interested in more than just value change detection. But hey, that's okay we'll benefit from this discussion too. I've already (re)learned a few things :thumbup:
  9. QUOTE(i2dx @ Aug 15 2007, 12:22 AM) I haven't found a way. As far as I know the blink properties are still global and apply to all controls. The only way I've worked around this in the past is to "roll my own" blink subVIs when I want the controls to behave differently from the global options... but that has obvious caveats, so I would like to see what others have done (Xcontrols with additional blink properties perhaps?).
  10. QUOTE(LV Punk @ Aug 14 2007, 11:39 AM) Ahem... let me break out the ole bullhorn for this one: [squeeeaaaawk!] MOST U.S GOVERNMENT FACILITIES CANNOT VIEW YOUTUBE VIDEOS! [squeee...click!] This *may* be of interest to any corporation that has a good chunk of their customers behind government firewalls....
  11. QUOTE(Daklu @ Aug 14 2007, 01:47 PM) The thing about accessing properties of array elements is that the properties and methods are all treated as the same. This means you can't disable, blink, etc individual array elements because they would all be disabled,blink,etc. You've also found that it requires some work to figure out if a particular element has changed without comparing the old values with the new values. Even with your event handling for the select button, you aren't testing to see *which* select button was clicked, just to see if *any* of them were clicked inside the array. For future expandability and to keep the code sane, I would choose a cluster versus an array for this application's front panel UI with 8 individual typedef'ed clusters inside. Now, this doesn't mean that your program can't take the cluster values that are in the UI and convert them into array elements when needed (using the cluster to array primative) to do "array" type operations internally... that's the beauty of using typedefs. Cheers!
  12. QUOTE(TG @ Aug 10 2007, 06:03 PM) Hey TG, I confirmed this crash with both LV8.2.1 and LV8.5
  13. QUOTE(Michael_Aivaliotis @ Aug 7 2007, 01:45 PM) Hey.. how'd that get in there? Pretty cool! Call me a minimalist, but I prefer: UseMarketingSplash=True
  14. QUOTE(Michael_Aivaliotis @ Aug 3 2007, 02:00 PM) FYI, VIPM 1.0 does not (will not) support LabVIEW 8.5. See here for more info.
  15. QUOTE(Michael_Aivaliotis @ Aug 3 2007, 02:00 PM) Also, make sure to check out the latest DAQmx and NI-488 device drivers.
  16. QUOTE(LV Punk @ Aug 6 2007, 10:24 AM) As disgusting as that sounds, I agree!
  17. QUOTE(konroh @ Aug 6 2007, 09:54 AM) Just curious... was there a coersion dot anywhere in the shift register or bundle nodes before you made the type change? Glad you were able to find the problem. One tip for you: Change your coersion dot color (Tools->Options->Colors) to something brighter, like a bright red, to see it more clearly. I think on LV8.0 they were grey, but LV8.2 changed the default to red.
  18. Thanks! I know I tried to accomplish this some time in the past...this will indeed become useful in future projects. One note, you forgot to include the "wait ms with err terminals.vi". I'm assuming that it is just what it says it is, a subVI with a wait ms primative inside a sequence with err terminal input/output?
  19. QUOTE(konroh @ Aug 6 2007, 07:49 AM) I've seen "bog downs" when I was feeding a very large data set through a shift register (LV2 variable). You might check the VI profiler when your top level VI is open and see if one of your VI's is allocating a large chunk of memory. Maybe even compare the memory usage when you delete the graph?
  20. QUOTE(Aristos Queue @ Aug 2 2007, 05:04 PM) Soooo..... why isn't there an NI course that has LV classes in it? Let's get real here. It's difficult to impossible to find the time (read: get paid) to learn "on-the-job". When it comes to my employer, I can sell a fixed amount spent on a course but I can't sell getting paid to learn on my own. I'm still waiting for the courses with LVOOP and LV Classes to appear before I "convert".
  21. QUOTE(dsaunders @ Aug 1 2007, 04:51 PM) Confirmed here on LV 8.2.1. On that note, it sure would be nice if enums would fire an event when the user hovers over each selection item...
  22. QUOTE(ASTDan @ Aug 1 2007, 12:38 PM) Doing some experimenting, there is only one way I can get a control to show up in the File|New templates... It seems that the filtering that is being done by the File|New browser is not anchored to the end of the file name, so you can get anything to show up in the File|New templates directory by naming it with a ".vit" or ".vi" anywhere in the file name. For example, if you create a directory in the "<LabVIEW>\templates" directory and place in it a control like this: http://forums.lavag.org/index.php?act=attach&type=post&id=6515''>http://forums.lavag.org/index.php?act=attach&type=post&id=6515'>http://forums.lavag.org/index.php?act=attach&type=post&id=6515 ...you'll find it listed in the list of templates in the File|New browser. Make sure to give the control template a decent description in it's properties or else you may see some oddness in the description window (I saw a description of the "Generate, Analyze and Display" tutorial in my control's description until I gave it a real description which was very odd). Also, note that if you want it to not be listed as "My_Control.vit.ctt" in the File|New browser you should rename the Window Title in the .ctt "Window Appearance" control properties. However... with this workaround, there are some caveats. If you're familiar with how the templates directory works, you'll know that you can normally take a file like "sample.vit" and place it into a directory with a .txt file and two .png files with the format of "sample.txt", "sampled.png" and "samplep.png" (one .png for the block (d)iagram and the other for the front (p)anel ). The text file has one line in it that replaces what you see on the templates browser (ie: putting "Yo ho, Sailor!" into the text file will make it appear as such in the browser instead of just "sample.vit"). You can also use the Window Title instead of the .txt file if you'd prefer, but the .txt file over-rides the Window Title if it is present. The .png files are the pretty screenshots you see when you select the template from the list. Unfortunately, with the above control template workaround, you must match the whole file name with the .txt and .png files in order to get it to work. This has some really ugly side effects. For example, a control template named "sample.ctt" would be saved in the template directory as "sample.vit.ctt" to get it to show up in the browser. That works great, and you can even get it to show up cleanly by renaming the Window Title of the control to "sample". But if you decide to use the .txt file or .png files, they would have to be named "sample.vit.ctt.txt", "sample.vit.cttd.png" and "sample.vit.cttp.png". (yes, you have to have the full file name *with* extension in this case in order for it to work). This creates a nice description and pictures that display when the user clicks on the template from the File|New browser. HOWEVER, since the filtering is not so smart (which is why this works in the first place) the three support files are *also* listed in the browser because they *all* include ".vit" in their file name! Ick! I'm not sure why NI decided to not include .ctt files in the template browser filtering in the first place, or if this was just an oversight that will be corrected in future releases. At least there is a workaround (without the .txt and .png support) which I've tested successfully in LV7.1.1, LV8.0.1, and LV8.2.1.
  23. orko

    Hi there!

    QUOTE(manic @ Aug 1 2007, 06:55 AM) Glad to have you here. Welcome!
  24. QUOTE(yen @ Jul 31 2007, 12:04 PM) Hey, Thanks for the link! I've been doing this manually!!! The file path option to save it to a temporary directory and load the path into the clipboard is perfect for LAVA. :thumbup:
  25. What you're missing is a shift register to pass the results array through the case structure if it hasn't changed. Shift registers will hold values and pass them into the next iteration of the loop, so if you initialize it with an empty results array of the type you want out of the loop, you can add/delete/sort it as you please through each iteration. If I understood your explanation, Something like this would work (TRUE and FALSE case shown seperately for clarity, there would just be one loop on your BD): http://forums.lavag.org/index.php?act=attach&type=post&id=6482
×
×
  • Create New...

Important Information

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