Jump to content

orko

Members
  • Posts

    576
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by orko

  1. QUOTE(NormKirchner @ Aug 15 2007, 01:36 PM)

    Aside from the fact that it is bloated at times, that bloat gives you so much functionality, you could choke a donkey with it.

    I can hear the new coined term in use now....

    "Wow! That last release was a real asschoker."

  2. QUOTE(NormKirchner @ Aug 15 2007, 01:18 PM)

    Just re-read his original post and I think we're right on. Being able to detect events from elemnets inside of a cluster as an element of an array. No?

    Semantics, I guess :D

    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.

  3. 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!

  4. QUOTE(Cat @ Aug 15 2007, 12:34 PM)

    This looks like a good place to start.

    An excellent place indeed! Welcome, Cat.

    ( I can't believe that username wasn't taken yet... :blink: )

  5. QUOTE(Daklu @ Aug 14 2007, 01:47 PM)

    Is there an easier way to access cluster element events that are embedded in an array? Or am I completely missing the boat by trying to use an array for this?

    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:

  6. QUOTE(i2dx @ Aug 15 2007, 12:22 AM)

    is there any way to set the blink delay of a specific control with a property node?

    The only way I found to set the blink delay is to change the value in the LV options dialog. But this means also, that the value is applied to ALL blinking controls and, if I compile an exe, I have to put that key into the exe's INI-File ...

    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?).

  7. QUOTE(LV Punk @ Aug 14 2007, 11:39 AM)

    If your company has a content filtering system like http://www.websense.com/global/en/' target="_blank">Websense then the VI Road Show page will load, but the video frames will appear blank. The best you can do is watch these videos from home :thumbdown: or hope that NI can find a place to host these videos on their own servers...

    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.... :angry::blink:

  8. QUOTE(Daklu @ Aug 14 2007, 01:47 PM)

    Is there an easier way to access cluster element events that are embedded in an array? Or am I completely missing the boat by trying to use an array for this?

    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!

    • Like 1
  9. QUOTE(konroh @ Aug 6 2007, 09:54 AM)

    I found the problem.

    I couldn't get it to reproduce in a small VI, but the constant circled above was a SGL, changing it to a DBL fixed everything...the type coersion where it was connected to the shift register on the for loop seemed to be causing the problem...

    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.

  10. QUOTE(konroh @ Aug 6 2007, 07:49 AM)

    ok, after deleting case by case and checking the edit speed, it seems that I have a problem with an xy graph. If i delete the graph the edit speed vastly improves (almost no noticable delay), if I replace it with another xy graph however, everything slows back down. if I create a new xy graph, and wire everything in it also slows down again...I will have to keep digging, but I think something is messed up with my xy graphs or at least the way I am using them.

    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?

  11. QUOTE(Aristos Queue @ Aug 2 2007, 05:04 PM)

    I didn't spend six years developing LabVIEW classes so that you guys could stay at LV7.1. :)

    Yes, LV classes should jump out at you as awe inspiring.

    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".

  12. QUOTE(dsaunders @ Aug 1 2007, 04:51 PM)

    I checked previous versions and this does not occur in LV 8.0 or 7.1. When you click on a ring or enum a popup list appears that you can select from. As soon as you enter this area with the mouse (sometimes this is instantaneous) the VI Mouse Leave event fires, as long as it is registered for of course. This applies to combo boxes and picture rings as well.

    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... :rolleyes:

  13. 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.

  14. QUOTE(manic @ Aug 1 2007, 06:55 AM)

    i've searched for help in this forum whenever i'd been stumbling over some labview problems. i think the time has come to try to be more than a passive member :)

    Glad to have you here. Welcome!

  15. 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.