Jump to content

Ton Plomp

Members
  • Posts

    1,991
  • Joined

  • Last visited

  • Days Won

    38

Posts posted by Ton Plomp

  1. index.php?app=downloads&module=display&section=screenshot&id=136

    Name: Polymorphic VI Editor v1.0.1 LV2011

    Submitter: Ton Plomp

    Submitted: 12 Jun 2010

    File Updated: 27 Dec 2012

    Category: LabVIEW IDE

    LabVIEW Version: 2011

    License Type: BSD (Most common)

    Polymorphic VI Editor v1.0.1

    Copyright © 2012 Ton Plomp

    All rights reserved.

    Author: Ton Plomp

    LAVA Name: TCPlomp

    Contact Info: Contact via PM on lavag.org

    LabVIEW Versions:

    2009

    Dependencies:

    OpenG:

    oglib_array

    oglib_error

    oglib_file

    oglib_string

    JKI:

    jki_lib_state_machine

    Description:

    A GUI for easily editing polymorphic VIs and creating good-looking menu trees.

    Installation and instructions:

    A: Open the ZIP file and install the OGP file with OpenG builder

    B: run the 'Polymorphic Editor.vi' in the 'Build' folder

    Examples:

    Look in the LAVA discussion for this entry for some videos on this tool

    <object id="scPlayer" width="1027" height="517"> <param name="movie" value="http://content.screencast.com/users/TonPlomp/folders/Jing/media/389dc546-26c4-499f-8702-0ffea3faf50d/jingswfplayer.swf"></param>'>http://content.screencast.com/users/TonPlomp/folders/Jing/media/389dc546-26c4-499f-8702-0ffea3faf50d/jingswfplayer.swf"></param> <param name="quality" value="high"></param> <param name="bgcolor" value="#FFFFFF"></param> <param name="flashVars" value="thumb=http://content.screencast.com/users/TonPlomp/folders/Jing/media/389dc546-26c4-499f-8702-0ffea3faf50d/FirstFrame.jpg&containerwidth=1027&containerheight=517&content=http://content.screencast.com/users/TonPlomp/folders/Jing/media/389dc546-26c4-499f-8702-0ffea3faf50d/Polymorphic%20Editor.swf"></param> <param name="allowFullScreen" value="true"></param> <param name="scale" value="showall"></param> <param name="allowScriptAccess" value="always"></param> <param name="base" value="http://content.screencast.com/users/TonPlomp/folders/Jing/media/389dc546-26c4-499f-8702-0ffea3faf50d/"></param>'>http://content.screencast.com/users/TonPlomp/folders/Jing/media/389dc546-26c4-499f-8702-0ffea3faf50d/"></param> <embed src="http://content.screencast.com/users/TonPlomp/folders/Jing/media/389dc546-26c4-499f-8702-0ffea3faf50d/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="1027" height="517" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/TonPlomp/folders/Jing/media/389dc546-26c4-499f-8702-0ffea3faf50d/FirstFrame.jpg&containerwidth=1027&containerheight=517&content=http://content.screencast.com/users/TonPlomp/folders/Jing/media/389dc546-26c4-499f-8702-0ffea3faf50d/Polymorphic%20Editor.swf" allowFullScreen="true" base="http://content.screencast.com/users/TonPlomp/folders/Jing/media/389dc546-26c4-499f-8702-0ffea3faf50d/" scale="showall"></embed> </object>

    Known Issues:

    Acknowledgements:

    OpenG.org for showing the power of polymorphic VIs

    JKI for providing an easy to use State Machine framework

    Version History:

    v1.0.0: Initial release of the code.

    License:

    Copyright © 2010, TC Plomp

    All rights reserved.

    Redistribution and use in source and binary forms, with or without

    modification, are permitted provided that the following conditions are met:

    1. Redistributions of source code must retain the above copyright

    notice, this list of conditions and the following disclaimer.

    2. Redistributions in binary form must reproduce the above copyright

    notice, this list of conditions and the following disclaimer in the

    documentation and/or other materials provided with the distribution.

    3. All advertising materials mentioning features or use of this software

    must display the following acknowledgement:

    This product includes software developed by the <organization>.

    4. Neither the name of the <organization> nor the

    names of its contributors may be used to endorse or promote products

    derived from this software without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY TC Plomp ''AS IS'' AND ANY

    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

    DISCLAIMED. IN NO EVENT SHALL TC PLOMP BE LIABLE FOR ANY

    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES

    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    Distributed under the Creative Commons Attribution 3.0 (http://creativecommo.../about/licenses)

    See link for a full description of the license.

    Support:

    If you have any problems with this code or want to suggest features:

    please go to lavag.org and Navigate to LAVA > Resources > Code Repository (Certified) and

    search for the "Polymorphic VI Editor" support page.

    Distribution:

    This code was downloaded from the LAVA Code Repository found at lavag.org

    Click here to download this file

  2. Say perhaps I have a device that errors out and I want to start the main VI over to re-initialized devices, can this happen during the middle of the main VI?

    Ah, that has nothing to do with recursive-ness.

    You shcould use a state machine that starts a 're-init' state upon certain errors.

    Ton

  3. I did this VI more as an experiment in vi scripting than to be "good."

    I would recommend creating a static hierarchy and simply returning the section of interest as yair suggested above if you need this to be blisteringly fast.

    ~Jon

    Hi Jon,

    unfortunately your code does not work:

    It works if the input is not a constant but a true ref.

    Ton

    post-2399-127614880284.png

  4. Why do I see 6 zeros when I open up the Excel file?

    Easy answer:

    Because you save them (and it's not an Excel file, but a CSV-like file).

    Long answer:

    You should start debugging your application make sure you store the right values to Excel.

    You see 6 zeros since you run your inner for-loops 6 times, the ouput of the for-loops is an array of 6 identical timestamps. Since you run the upper and lower for-loop in the same frame and you have no data-dependency they are basically (at least passed the 15 ms. windows accuracy) the same.

    Your while loop does not autoindex, this means that it outputs the last array of 6 timestamps. These are save to the file.

    Use Execution highlighting to debug your code, use probes and indicators.

    Ton

  5. Thanks for your help!

    I am having trouble with how to connect what I currently have on my VI (the start and stop arrays) to the input of the subtraction node.

    How do I connect the arrays to the input terminals of the subtraction node? Right now, there is no other terminal to connect them to the subtract node.

    I apologize if it is very simple, I am very new to LabVIEW. Thanks so much!

    Make sure the Auto-tool is on (on the tools-palette a green led should be lit), go to the right hand side of the terminal on the block diagram of an array, your mouse should turn into a wire-tool and you should see some small lines out of the terminal, click on the lines and your wire tool should be connected with a dotted line, now move to the subtraction node and perform the action on the input node.

    Ton

  6. Great question! We are still fleshing that out, but my initial thoughts are to certify all the palette VIs together, and look at OpenG builder separately.

    That makes sense, since the OpenG toolkits generally only contain 'official' LabVIEW code and OpenG Builder dives much deeper into the core code.

    Ton

  7. The general error handler (crying) gets called for all error cases . Currently I am tying to lower the crying amplitude property. The default is set WAY to loud. Any suggestion on where this is located would be appreciated.:thumbup1: I filed a bug report with the hospital but they are ignoring me.:frusty:

    Don't worry about the error level. In general there are two ParentApp.ErrorHandlers for each sub-vi. When both are idling the Female.ErrorHandler has a lower action threashold than the Male.ErrorHandler (source), otherwise it's usefull to make more space (or walls/doors) between the source of the error and the receiving ErrorHandler.

    Ater all, congratulations.

    Ton

  8. hi......jg code sir...

    thnk u so much for ur response........

    actually i hav not mentined in the earlier post.... tat i am using 3rd party tpc..... so iam running it in normal windows xp...:rolleyes: kindly help me sir

    You can install the OpenG variant config toolkit, this toolkit has 2 usefull VIs, Write panel to INI and Read panel from ini.

    Ton

    PS, please use full words and less '.' Interpunction has it's value in my opinion.

  9. what about 'data socket' functions?

    i use d.s. read to retrieve a document, generated by google, but it finishes with the error 42 in data socket read element. 

    "generic error".

    Add a '[text]' to the end of the request string.

    That will instruct something in datasocket.

    And please use something else for posting (and annotating) a codesnippet. The Code Capture Tool for instance.

    Ton

    • Like 1
  10. ... about 10 digital IOs, 7 Analogue inputs and 1 Quadrature encoder input. I was thinking of using a NI PCI6220

    It's not very clear stated in the specs of the M-series card (6xxx-series) but only the first port has the possibility to use a clock as a timing source, for port 1 and up you rely on software timing, which is much slower and not really reliable.

    Your card-series of choosing (622x) has 8 inputs on port 0. To get more inputs you need the 625x series which has 24 inputs on port 0.

    I am not sure about the quadrature encoder but you should be able to get speed up to the clock-speed of the analogue in for all of the signals (about 1 MHz).

    Ton

  11. On topic, go deep inside the Office Toolkit to find out which method is used to load the data from Excel into LabVIEW, perhaps there is a Uni-code aware method you can use.

    What code do you use to get the data out of Excel?

    The NI office toolkit, or some other toolkit?

    Try to define which method is used to pump the data from Excel inot LabVIEW.

    Hey your Table Contol is working fine..... but i am facing a problem while reading from excel sheet and then loading to Table control...............

    Karthik,

    could you please answer above question(s)?

    Then we can help you.

    Ton

  12. Is there a way to check in/out directly from a LV project with Mercurial? Now that you've had it a few days do you think it's better than SVN?

    George

    Yes it is.

    The main improvement for me is that I can commit when I am not in reach of my server.

    that's the main difference, I can commit every day to my local (computer based) repository and when hitting a milestone (or just fixing a bug) push this my my own Mercurial server.

    I like the system of Mercurial with webdir, which let you easily host multiple repositories on one computer, this keeps the code to get small.

    On the down side I had issues with actually working together with someone else on a mercurial repository at Sourceforge. I am still not sure what happenend but we ended up with several heads that we didn't merge (actually we quit on that stage).

    I am thinking about building a Mercurial provider for LabVIEW (hint, hint) so I can do the local stuff directly in the LabVIEW project.

    Ton

  13. I am thinking about placing a Code Capture Tool section in the LabVIEW preferences dialog.

    Looking at the %LabVIEW%\resource\dialog\PreferencesDialog\PreferencePages folder I see a pageTemplate.vit template.

    I have created a new VI (prefPage_CCT.vi) and was hoping that a section would show up in the options dialog.

    Unfortunatly this doesn't work.

    Has anyone done this?

    Ton

  14. I am thinking about creating a mercurial Source Control Provider client.

    I have created a new provider based on the existing Perforce.

    If I copy this in the Provider folder of LabVIEW I get an extra provider in the SCC options dialog.

    However selecting the new provider causes an error.

    Does anyone have some pointers about the setup of this provider feature?

    Ton

×
×
  • Create New...

Important Information

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