Jump to content

Michael Aivaliotis

Administrators
  • Posts

    6,203
  • Joined

  • Last visited

  • Days Won

    111

Everything posted by Michael Aivaliotis

  1. You probably need fast updating because you are using the GUI as feedback for some manual tuning operation that the operator performs?Are you using an event structure? If so, then I don't see how you can miss user events. They are qeued up in the event structure. I'm not sure why you are having such problems with slow screen updates. Is it possible to see an image of your code?
  2. Yes, well what you want is to isolate the main GUI from knowing or even caring about the representation requirements of the test routine. One way to do this is to build a framework into the main GUI that calls various methods of the routines. This is where GOOP helps. For example, you would make each test routine a class that has several methods. One of the methods would be "run test", and another coould be "display data". When you call the "display data" method, you would pass it a reference to a location that you want the data to be displayed. The location would be an embeded panel. Now, the GUI doesn't care how the data will be displayed. All it knows is that data will appear in this embeded panel. You can really do some powerfull stuff with this. For example you could call the "display data" method multiple times. Each call would create a new instance of the data display object. This would allow, for example, multiple views into the same data (one graph zoomed, another expanded). You may ask the question. So how is the data displayed. Well, this is the exclusive responsibility of the class. It has knowledge of the data and would have a VI panel dedicated to this. This could be a seperate VI or handled within the same test routine. Now, you could even go one step further and make the "data display" a class. Then you could make it generic enough to handle your data. Your test routines would call this class and pass them the GUI reference. Let's face it, how may data types do you have? Graph, Boolean, String, Numeric. If it can handle those then you're golden. Also, don't lock yourself into the very limiting "Main Window" concept. With the approach mentioned, you can have multiple windows, each displaying a different piece of data. Your customers will love you for this.
  3. Well, I'm glad to hear that it's a bug rather than some strange attempt from NI to remove functionality. It's a shame since this is a useful function for implementing some powerful design patterns.btw, is it me or is this the buggiest LV release yet?
  4. Ah, so now we get down to fixing your real problem. You have queue backlogs? How can we fix this? Have you tried "deferpanelupdates"?
  5. Just a quick thought. Many of the packages have dependancies. This means packages depend on other packages to be installed. I think the problem is that you need to install the oglib_error-2.2-1 package as well. The current released version of Commander does not have dependancy checking. This is a future feature.
  6. Your code looks just fine, I really have no idea why you are getting this. Before you install 5.0 make sure to download the latest ODBC driver first since this may be the problem. Also make sure that you are not modifying any of the ODBC flags in the driver. Leave everything as default.
  7. I will try to reproduce this however, I am using MYSQL 5.0. Perhaps this makes a difference.
  8. Whe I tried this from the database toolkit, it works fine for me. I used the SQL query: SHOW columns FROM test_table It returns all information. Here is the code I'm using:
  9. Well, you can always write to this programmaticaly using the ini write functions from within your application. You can access the value of this path using the Default Data Directory constant and property:
  10. This is the preferred usage of tabs that I would like to see. I have seen main UI windows implemented with tabs and I got to say it stinks. What it comes down to is the programmer's lack of creativity in presenting data and information to the user. Yes, let's slap a couple of extra tabs to cram some more data into an already crowded front panel. See a great example of how not to use tabs:http://forums.lavausergroup.org/index.php?...pe=post&id=1912 If the purpose of a tab control is to navigate the user through some tasks then use a tree control on the left side with revealing information on the right. Again, the underlying thread should be static properties that can be changed or manipulated. Once this is accomplished, the window is closed and forgotten. Well, cool, this can happen but I am totally against using the tab control as something outside it's intended purpose. I also find it annoying when I have to "decode" the GUI just to find some input and output controls that should be right out in the open. You don't need to hide the controls or indicators. The less editing of the code I do the better. If a panel resizing will reveal a control then they can be placed to the left of the GUI objects. Panels only resize to the right or down. Why are you thinking of this? Why would you want to make such a complicated GUI window? You need to analyze and find out what your lowest data object is and how it can be displayed. Then decide how multiples of these data object can be presented as a group or individually. What are their relationships and how will they be manipulated by the user. There are many directions you can go here. For example, multiple test routines can generate plots that get pushed onto a common graph. This graph would allow you to add or remove plots as needed. You might also allow the ability to spawn multiple instances of these graphing windows all pointing to selective data. Make the user interface generic enough to accept data input from various sources without forcing the user to look at only one thing at a time. This is my main beef with tabs. It allows only a limited view into the system. What is the problem with multiple windows? Why can't I see gauges and graphs and test parameters all at the same time?
  11. Well, maybe as I get older I get less and less adventurous. I am afraid that the only reason I would switch to LV8 is if a customer specifically requests it. Even then I would ask them to give me a compelling reason. It would have to be some feature in LV8 that they can't live without, or something that can't be done in LV7. If you are an integrator and are getting paid time and materials then you get paid either way, but if you are on fixed cost projects then it would be suicide to switch to a new LV version just because NI is preaching about it.
  12. Some support VI's are missing, can you re-upload the zip. Since you're a Premium Member, just go back and re-edit your original post and replace the attachment. No need to re-post.
  13. Hey, let's not reveal my true interest in this matter... .
  14. Well, yes, we kinda knew that already didn't we? This is also included as part of the material in the LV basics course. I think the point of asking the community for feedback on usage is to find out what real LV users do... Don't forget that NI often changes the terminology of certain things over time to fit some new marketing goals and strategies. Don't be surprised if you will soon see the term global variable and functional global be replaced with the term "Shared Variable"... Yes, let's introduce more confusion for the new user, shall we?
  15. Ok, that's good. You are my friend now... .I don't know how the loop timing is configured since you haven't shown us the code yet, but you might want to look at placing a wait function within the loop that updates the front panel. If you already have wait functions or timeouts, how long are they? Is it possible to send a screen capture of that portion of the code? Adding a small time delay usually allows the processor time to perform other tasks and reduces the load.
  16. Use the sound VI's already located within LV. If the audio from the microphone of the webcam shows up in windows devices as availabel, then you wil lbe able to access it with these VI's.
  17. I'm surprised that NI support was no help. I was able to reproduce it in 2 mins even in 711. Must be a reported bug already... strange. All I did was: New VI Placed a Chart Right-Click>select>stack plots Right-Click>select>Visible Items>Scale Legend Then click on the bottom right corner of the scale legend and stretch it down one element (it's an array). Click on the lock button. Enjoy.
  18. Well, you know what can happen if our advanced LV developers here on the forums get an idea stuck in their heads: http://forums.lavausergroup.org/index.php?showforum=29 Let's not go down that path... My son was a little too young or the mindstorms kit this past Christmas, so I held off. I think i will definitly look into NXT this year.
  19. I have a hunch...Based on my experience, new LV developers usually pass data to the UI by using the value property and most of the time with ctrl references. I don't want to stereotype but if I'm wrong, let me know. This might be your problem since this method of passing data is slow. If you can, just wire data to the terminals of the indicators by a wire or use a local. If it is too much work to re-write your code then you can use the "defer panel updates" property.
  20. Thanks a lot! Go and show the world my ugly webpages from days gone by... I guess like LV, my web site development skills have evolved...
  21. The keywords I asked you to search for are components used in building the solution. Based on the fragment of information you gave me in your original post, I was able to come up with something... Make sure to quote your sources in your school report. LAVA Forums... ya right.
  22. I love this... hey guys, where's that post stupid/please-make-my-homework/offending questions here" forum? that i2dx mentioned a while back?Do a search on build array, shift register, while loop, xy graph, in the LV help...
  23. How about LabVIEW Advanced Virtual Architect Globals? LAVA Globals?
×
×
  • Create New...

Important Information

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