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. I have a question. I am thinking about a policy which allows our company to track which user.lib VI is used where so we can decide for which programs we have to retest upgrades of VI libraries. I want to be able when building an application to read which VIs are used inside the app. A simple routine is reading all of the children VIs and store this array. A more sophisticated way is a cross-link database where for every reuse VI is tracked in which applications it is used. I am thinking to give each reuse VI a special tag to have an easy access database field. Some option are: VI description with a special string like ***Internal Reference #### Version 0.9*** (NI has such fields) A tag on the frontpanel like OpenG has A tag on the block diagram A tag using VI tags I am thinking about the latter, the tags are invisible to the user, can be accessed via VI server, the downside is that they are not supported by NI (what do I care, I do more unsupported stuff). What are your thoughts? Ton
  2. QUOTE (Yair @ Jul 5 2008, 02:13 PM) As you know I can't post usable code. But it just so happens that the code I have now will be re-written has bugs and generally... sucks. Besides, I have not added the Killer Rabbit object yet, so what good is it. So see attached. Demo VI is "Drop_Generic" These notes show you what the controls do. http://lavag.org/old_files/monthly_07_2008/post-29-1215362777.png' target="_blank"> A Index of element on screen. This is as dropped order. B Stop demo C Toggle between edit and operate mode D Ring lets you select object to drop E load from file. some objects do not operate after re-loading F Save design to file G value that will be written to the object at index (A) H Read the selected objects value I Write the selected object J value read from object K File spec of bmp file that serves as background. You must set this before running demo. I included some samples under "Graphic_Operations/Background_Images" If you happen figure out why two of my three booleans do not work after re-load I would not mind at all. Have fun, Ben
  3. You must be in the same class as this poster. What have you tried so far? Do you have any code to show us of what you are working on? What is the interface from the USB6008 to your LCD display? What kind of signals do you need to send to the LCD display? There's not much we can tell you with the little you told us. Look at some of the basic examples installed with LabVIEW to become more familiar with LabVIEW before programming the USB 6008.
  4. QUOTE (dispossessed @ Jul 5 2008, 01:32 AM) Hi, One Thing I just realize.. if you want a particular number of fps, I would recommend to trigger the camera, I think this is the best way to do since you know how fast the images are taken by the camera and then you just have to make sure you go fast enough to extract and save them to HD. Can you try to find a trigger source ? Second thing, I checked the camera specs, it appears that in 10bits config the max frame rate is 15fps and in 8bits config the max frame rate is 30fps. So... Also, as I said I couldn't test it because I don't have hardware at the moment. But with the same architecture I had very good results. There are a few things that can be improved in the code I posted, first, to find the bottle neck, here is what I would do : - check that the "extract loop" gets all the images, by placing an http://decibel.ni.com/content/docs/DOC-1106' target="_blank">history probe on the "buffer extracted" wire, if this is not continuous, increase the number of buffer you allocate for image acquisition. - once you're sure that all the buffer are extracted at the rate you need, graph the Q size to make sure it doesn't no kep increasing... if it does, it means your HD is not fast enough (which I really doubt in your case, seeing the figures you gave :-o) ps: here is the main VI with slight change to graph continuously the Q size. Hope this helps
  5. QUOTE (normandinf @ Jul 4 2008, 02:41 PM) Yes, exactly. You pretty much committed to an employer for the year and had to stay 'til the end to get paid. "You have to be present to win."
  6. QUOTE (normandinf @ Jul 4 2008, 02:41 PM) Yes, exactly. You pretty much committed to an employer for the year and had to stay 'til the end to get paid. "You have to be present to win."
  7. QUOTE (LV_FPGA_SE @ Jul 4 2008, 08:27 PM) The same still goes for New Zealand where all farm years end 31st of May and all new contracts start the first of june (and most of the labor) Ton
  8. QUOTE (LV_FPGA_SE @ Jul 4 2008, 08:27 PM) The same still goes for New Zealand where all farm years end 31st of May and all new contracts start the first of june (and most of the labor) Ton
  9. QUOTE (normandinf @ Jul 4 2008, 12:46 PM) Interesting. I never heard of Moving Day, even after living in Canada for so long. In older times in Germany and Austria they had a similar concept that all the field hands would move from one land owner to another on the same day of the year. (They would receive the pay for the entire previous year on this day and were then free to move.) This was the feast of Candlemas on February 2nd. Incidentally this Germany holiday was also the origin for Groundhog's Day in the US.
  10. QUOTE (normandinf @ Jul 4 2008, 12:46 PM) Interesting. I never heard of Moving Day, even after living in Canada for so long. In older times in Germany and Austria they had a similar concept that all the field hands would move from one land owner to another on the same day of the year. (They would receive the pay for the entire previous year on this day and were then free to move.) This was the feast of Candlemas on February 2nd. Incidentally this Germany holiday was also the origin for Groundhog's Day in the US.
  11. Thanks, coming from a German Canadian Texan. Sorry to have missed wishing you a Happy Canada Day a couple of days ago. I thought of it and told my wife about it that morning, having lived outside of Toronto for 12 years back in my younger days.
  12. Thanks, coming from a German Canadian Texan. Sorry to have missed wishing you a Happy Canada Day a couple of days ago. I thought of it and told my wife about it that morning, having lived outside of Toronto for 12 years back in my younger days.
  13. Notes to others: "Rename" is handy for moving your files around. Use a Source Distribution to pull out only the active files. If you do something that results the project trying to re-open the old files, check your lvproj file with a text editor for the files it is looking to find, they sometimes get stuck in a section labeled VI's in memory. Just edting out that line fixes that. Ben
  14. QUOTE (Poom-Thailand @ Jul 3 2008, 11:03 AM) http://forums.lavag.org/I-want-to-build-the-robot-t11322.html' target="_blank">Crosspost...
  15. QUOTE (Yair @ Jul 3 2008, 02:57 PM) Duplicate 3...
  16. QUOTE (Jim Kring @ Jul 3 2008, 10:28 PM) Oh come on, you mean 98 is more stable than XP? Ton
  17. Like I said still learning. I chose this project to learn LVOOP since it has many elements with which I (we) are very familiar, so I don't have to beat on the customer to worm out the design details since I drop controls all of the time. But I don't want to copy NI's approach exactly since that would turn the project into a transcription exercise. I would like to learn more about "why" in addition to the vocabulary and techniques. I also appreciate you sharing your thoughts because it helps me a lot! I'll try hard to avoid getting into one of those "well I know a req that I did not tell you" things. So the following is not a rebuttle to your comments but rather an attempt to use proper LVOOP terminology to share my thoughts on what you said. QUOTE (Yair @ Jul 3 2008, 08:44 AM) I understand a property of an object to be an element in the cluster that defines the class of that object. Since that property would determine the objects behaviour (methods?) it seemed that LVOOP's over-ride capabilities would be good fit. Listening to what I just wrote... So it seems I should modify my structure. I think I have to add two children to Boolean, Control and Indicator. I could then make LED a child of Indicator and set the Toggle PB and Toggle SW classes to inherit from Control. I think this would improve my architecture because I could implement the Mouse Down methods in the Control class since in the real world clicking on a LED does not make any sense (believe me I tried it and ended up breaking out a soldering iron to get it change states ) So after that... All objects that are of class Indicator or children of such will have their "Control?" property set true and vise versa for Indicator. So the class implies the value of that property so what good does it do me? Not trying to fight over this Q just trying to learn which hammer (Class vs property) to use when designing an app. :thumbup: QUOTE (Yair @ Jul 3 2008, 08:44 AM) ... to the dynamic class (or even the plug-ins class, if you want to have the option for the future)... OK, now invoking previously unknown spec... The objective of this app is to emulate real world devices. This means that only those widgets at the bottom of the tree can be used by the app. So does implementing the idea of control/indicator get applied at the top of the architecture like it does in LV or is this an application requirement that dicates it should be handled at a lower level? QUOTE (Yair @ Jul 3 2008, 08:44 AM) ... Then, in the init method for that class, do the registering based on the style. Since your styles are currently constant, you can set the property in the init VI for each class... Your term "init method" got me thinking since I'm initializing my objects in two different ways. In the first case I create a new object of every class that is a child of the class Plug-ins and use methods to determine which objects the user can drop in a panel layout. Once this is done I only use the class as a prototype from which the object that will be placed in the layout are created. Since I stumbled into this structure through the backdoor, I just used the "Create New" method like an init method. I should implelemnt an init mthod. QUOTE (Yair @ Jul 3 2008, 08:44 AM) ... then call the parent implementation to do the registering. ... I think a light buld just went on. My first dozen reads of your response had me thinking that registering was just a synonym for "invoke mtehod". Then when trying to dismiss the possibility you were talking about registering an event it hit me that when I create the object, I could have it spawn off a background process that registers events for the picture control used to house the objects on the GUI. This one word alone may help me get rid of the one AE I am using to direct mouse clicks to the correct objects. So rather than filter the event and invoke a method from the GUI, I could let each background process filter if the event (Mouse Down, Mouse Move, Mouse Leave, ...) applies to itself. I WILL be giving this much more thought. Thanks! Ben
  18. QUOTE (Aristos Queue @ Jul 2 2008, 04:57 PM) OK thanks to All! It turns I broke every one of those rules. :headbang: I'll call this a life leason and adjust my habits. Again, Thank you! Ben
  19. QUOTE (crelf @ Jul 3 2008, 07:59 AM) I don't see much hijacking going on, but noise? Some of that noise are more "resonant responses" to non-linear functions. Tolkien wrote in the Silmarilian of the music evolving over time. The final result of the repeated themes was the creation of Middle Earth. If we set up filters to accept only what we expect to hear, we'll never appreciate the harmonics of of the cerebral cords we share. Limiting the bandwidth will only stiffle the creative process. Nipples aside, aside I find LAVA a wondeful place to brainstorm with some of the greatest engineers and scientist in the world. Ben
  20. QUOTE (Poom-Thailand @ Jul 3 2008, 01:06 PM) a starting point lego nxt http://mindstorms.lego.com/Products/default.aspx you shoud know what you have to do... do you already have HW/SW??? without furter information we can not realy help you... further you must not start 3 topics with the same question in the same forum at the same day
  21. There we are, I couldn't test it because I don't have the hardware available at the moment, but I think with this base you have a good chance to make it work. Hope this helps
  22. QUOTE (dispossessed @ Jul 3 2008, 09:36 AM) Woops... sorry I missed it... I'll take a look
  23. It's ok to cross-post to other forums but please mention it Last I made an application LV8.20 that saves up to 50fps for 10minutes the flowrate was close to 120Mo/s with RAID0 system. 17Mo/s on a fast HD should really be fine, as Crelf said, show your code and it will be easier to help you. What I did for my application is 2 loops running in parallel, one extracting images as they are ready and copy them into a queue, the second loop keeps dequeueing and saving to disk as fast as possible. To see it the systems goes fast enough, graph the "elements in queue" to make sure it does not incease too much. Hope this helps
  24. And it's a cross-post. It's good manners to mention you crosspost, with a link. Ton
×
×
  • Create New...

Important Information

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