Jump to content

Michael Aivaliotis

Administrators
  • Posts

    6,196
  • Joined

  • Last visited

  • Days Won

    104

Posts posted by Michael Aivaliotis

  1. A quick search on the NI site came up with this:

    Will My Palm OS 5.2 Running an ARM Processor Work with the LabVIEW PDA Module?

    Problem: Will my Palm OS 5.2 running on an ARM processor work with the LabVIEW PDA (LVPDA) Module and why is the ARM processor grayed out?

    Solution: Yes, if you are using a Palm OS 5.2 running on an ARM processor it will work if you run it using the Motorola 68K processor. The LVPDA module was developed before the Palm was supported by ARM and therefore is not an option. The only reason that the ARM appears as a grayed out option is that it is the default processor for Pocket PC and both modules use the same dialog box.

  2. PJM,

    In the thumbnail attached to this post, there is an apparent OpenG Scripting palette. I can't find it on this or the OpenG site. Is it available?

    3703[/snapback]

    This is PJM's personal palette. Perhaps with a little coaxing, we can get him to submit an openg package with these goodies...

    I believe the closest thing OpenG has to scripting is the ogmnu_appcontrol_plus package. It can be downloaded with Commander.

  3. We have been doing some optimizing of some existing monster code and we have found that instances of global variables is a problem.  Specifically, we have two global variable vi's that contain ~ 150 variables each.

    In the heirarchy there are approximately 600 instances strewn about.

    I have found a solution that may work for us, but I wanted to get some further opinions.

    Basically the solution is this:  At the top level, we have one instance of one of the global variables just to ensure that the vi is in the heirarchy and in memory.  We then use the variable name to access the data using property nodes passing the data in(or out) as variant.  Since there are only a few data types, we then use a polymorphic vi to essentially convert the data to (and from) variant.

    I have an example attached.

    What do you guys think?  Will this help my memory size?  We have found that this method is the closest to a drop in replacement for global variables.

    Thanks.

    In the example, look at "Global example.vi" and "Old way global example.vi"

    Download File:post-1336-1105663280.zip

    3509[/snapback]

    Rule number one in my company is:

    1. No Global variables

    Rule number two is:

    2. Read rule number one.

    Anyone caught breaking this rule is reprimanded. Forget globals, remove it from your palette (if you can). The solution you provide is worse! You know how slow your read and writes are gonna be? oh man! Open a reference to the global vi then using property nodes, wholy cow! Very very slow. especially if you have 600 of them. Very bad programming style.

    Why re-invent the wheel?

    Read this:

    What are USR Globals?

    Spend a day or two and rewrite the global calls to USR globals it's well worth it. Do it behind your bosses back. The program will run better and faster and you will be a hero.

    Also, if you feel like reading, here:

    http://forums.lavausergroup.org/index.php?showtopic=652

  4. Im sending strings via serial between two vi's on separate PCs.

    The string is made and broken down from and into property nodes(.value). I was wondering if local variables are any quicker?

    Or is there any difference at all?

    Thanks

    Jason :blink:

    3428[/snapback]

    I suspect that you are asking this question because you are having speed problems. Relatively speaking, any internal data passing method you choose will be light years faster than your serial connection. Local variables would be faster and queues mentioned by @johnRH would be good as well but none of these changes will give you "noticable" speed improvements.

  5. Should we switch to personal messages to avoid getting an endless thread?

    3405[/snapback]

    Not really, I think this is educational for all.
    These are details, I chose "my" look to follow the standard of NI's controls&indicators. Overlapping aso. are details easily changable.
    Yes, I realize that. Perhaps it would be nice to create some function VI's that operate on the "look and feel" of the menu. This way the colors and style can be programmaticaly changed. We can also have 3-4 "preset" looks that people can choose from. Remember, the key here is to satisfy a broader audience.
    What I made is the basic implementation. Build a few vi's around the different parts and you end with 2-3 vi's.
    Ok, I just wanted to clarify that this should be the direction.
    Greate Idea for the menu builder GUI :thumbup: !

    3405[/snapback]

    Do you want to work on this? I think it would be a great way to combine forces. This way there is no overlap.
  6. First, please review this topic:

    http://forums.lavausergroup.org/index.php?showtopic=771

    It contains recommendations for posting images to the LAVA Forums. It is not acceptable to post large images inside posts.

    --------

    Now for your problem. You state the following:

    I have 2 booleans and a cluster of 6 booleans on the front panel of the main VI and the events on the single boolean controls are not recognized by the event structure after calling a "Sub-VI" with an event structure in it.

    Do you mean that if you do NOT call a "Sub-VI" with an event structure in it, everything works fine?

    Also I noticed this:

    post-2-1105080768.gif?width=400

    I hope you are not splitting this reference. It is not recommended to split or share user events between event structures. Perhaps this is your problem.

  7. My comments follow:

    hfettig, your code has a path problem:

    post-2-1105070794.gif?width=400

    I'm not sure what you're trying to do with the name mangling. I took that out and it worked.

    Menu look and feel.

    hfettig, in your implementation, I noticed that when you hover over an item that leads to a submenu, nothing happens. You have to click on the item for the submenu to fold out. This is contrary to standard menu behavior. In general, I noticed both (hfettig and didierj) implementations have menu's that are non-standard. The question arises, what is standard. Well, in my opinion the menu's should match the system colors and schema whenever possible. For example, dotted lines as separators is not standard. Also, didierj, when a submenu unfolds, it should be slightly overlapping the previous menu.

    Architecture

    hfettig, I like how you've implemented the architecture to match the built-in menu functions of LabVIEW. However frankly do you think that's easy to program with? It simply takes up too much valuable digram real-estate and requires an extensive concatenation of VI's. I love didierj's method of describing the whole structure in a string array. Perhaps we should target that approach.

    post-2-1105072399.gif?width=400

    post-2-1105073834.gif?width=400

    The more I think about it the more I come to the conclusion that we should create a menu builder GUI :yes:. If you think about it, this is what NI did because they also realized that you can't rely totaly on VI's to create your menus every time. For the casual menu user, a menu editor that saves the menu architecture to a file is all that is really required. However, you still need the VI's to manipulate the menu for dynamic situations. Perhaps we can keep hfettig's approach for dynamic menu manipulation and just build a GUI for menu building.

    Programmer Usability

    hfettig, I like how there is minimal code required for the launching of the menu. Ideally I would love to have a 3 VI implementation. As long as you have a control reference then that is all you really need. didierj, there is simply too much code required to feed into the functions from the toplevel. Look at how hfettig has used a subvi to capture the control coordinates to minimize the amount of work the programmer has to do for implementation. I believe we can minimize the overhead even more.

    post-2-1105074295.gif?width=400

    post-2-1105074327.gif?width=400

    Here is what I envision for the final implementation:

    post-2-1105075031.gif?width=400

  8. This is great!

    Thank you to all in this thread for your enthusiasm. :thumbup: . I would really like to see the pop-up menu system (RCPM) become an official openg package. I currently have a use case for this tool to use it in the next generation openg package manager which we've named Commander. Before this happens, I'd like to debug the RCPM and create it into a package.

    I've been busy working on the release of the NEW openg website but I will spend some time working with the RCPM and give you my feedback in this thread ASAP. Once the new openg website is up and running we can transfer this discussion over there.

  9. Interesting comments, especially the open source discussion.  We have been debating the value of publishing the source to all of SoftWIRE and inviting people to improve and extend it, while of course we would remain the repository and distribution point for the SoftWIRE program so that we could ensure its quality.  Anyone have something to add to that conversation?

    Ben Bailey

    3353[/snapback]

    Well, free open source software is the natural evolution of software development. Companies that recognize this will survive in the long-term. See this article:

    The care and feeding of FOSS

    Thanks to Jim Kring for pointing this article out to me. :rolleyes:

  10. <p><strong>Over 145,000 deaths have been confirmed in 11 countries with Indonesia, Sri Lanka, India and Thailand worst hit.</strong></p>

    <p>Indonesia says more than 94,000 died in the disaster.

    In Sri Lanka, 30,190 are confirmed killed.

    The number of people in India confirmed dead, or listed as missing presumed dead, has risen to 15,275.

    Thailand's Prime Minister Thaksin Shinawatra says his country's death toll could rise to 6,000.

    Please donate what you can to help the charities assisting there. Some of the charities helping follow:</p>

    <ul>

    <li><strong>Red Cross</strong> <a href="http://www.redcross.org.uk/Campaign.asp?id=38543" target="_blank">UK</a></li>

    <li><strong>Australian</strong> <a href="http://www.redcross.org.au/ourservices_aroundtheworld_emergencyrelief_AsiaQuakeTsunamis.htm" target="_blank">Red Cross</a></li>

    <li><strong>Oxfam</strong> <a href="https://secure.ga3.org/02/asia_earthquake04">Asian Earthquake & Tsunami Fund</a></li>

    <li><strong>Oxfam</strong> <a href="http://www.oxfam.org.uk/what_you_can_do/give_to_oxfam/donate/asiaquake1204.htm" target="_blank">Oxfam UK</a></li>

    <li><strong>Oxfam</strong> <a href="http://www.oxfamamerica.org/newsandpublications/press_releases/AsianFloods" target="_blank">Oxfam America</a></li>

    <li><strong>Oxfam</strong> <a href="http://www.oxfam.ca/news/AsianEarthQuake_Floods/Oxfamresponds.htm" target="_blank">Oxfam Canada</a></li>

    <li><strong>American Red Cross</strong> <a href="https://www.redcross.org/donate/donation-form.asp">International Response Fund</a></li>

    <li><strong>AmeriCares</strong> <a href="https://www.americaresfoundation.net/donate/default.aspx?id=South%20Asia%20Earthquake%20Relief%20Fund">South Asia Earthquake Relief Fund</a></li>

    <li><strong>CARE</strong> <a href="http://www.careinternational.org.uk/" target="_blank">International</a></li>

    <li><strong>CARE USA</strong> <a href="https://donate.care.org/05/20180000/?source=170570020000">Asia Quake Disaster</a></li>

    <li><strong>Direct Relief International</strong> <a href="https://www.directrelief.org/sections/support_us/d_donate_now.html">International Assistance Fund</a></li>

    <li><strong>Médecins Sans Frontières International</strong> <a href="http://www.msf.org/donations/index.cfm">Tsunami Emergency Appeal</a></li>

    <li><strong>Sarvodaya</strong> <a href="http://www.sarvodaya.org/">Relief Fund for Tsunami Tragedy</a></li>

    <li><strong>Save the Children</strong> <a href="http://savethechildren.org/radio_asia_earthquake.asp">Asia Earthquake/Tsunami Relief Fund</a></li>

    <li><strong>SEVA</strong> <a href="http://www.seva.org/ef.php">South Asia Emergency Fund</a></li>

    <li><strong>UNICEF</strong> <a href="http://www.unicefusa.org/tsunami">South Asia Tsunami Relief Efforts</a></li>

    <li><strong>World Food Programme</strong> <a href="http://www.wfp.org/">Tsunami Disaster Appeal</a></li>

    </ul>

  11. 1. Type "about:config" in the adress field.

    2. Set the value of network.http.pipelining to "true".

    3. Set the value of network.http.pipelining.maxrequests to "8".

    4. Set the value of network.http.proxy.pipelining to "true"

    Found the above info while scouring the web...

    Suppose to make Firefox display pages faster :ninja: .

  12. To Michael_Aivaliotis : In your producer/consumer model, is there a reason you send the queue through the producer loop in a shift register?  I'm under the impression that the queue parameter just references the queue, and all queue operations seem to return it unchanged.  (The only reason I can think of is to provide a nice-looking way to send the queue reference to the queue release function).

    3328[/snapback]

    Yes, you are correct. No need to pass it thru a shift register.

×
×
  • Create New...

Important Information

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