Jump to content

Ton Plomp

Members
  • Posts

    1,991
  • Joined

  • Last visited

  • Days Won

    38

Posts posted by Ton Plomp

  1. Certified 1-24-2010

    Moved to UI Group

    François,

    could you alter the set to move the boolean text ouside of the boolean image?

    post-2399-0-95684000-1301321137_thumb.pn

    I have created a screencast on this issue.

    <object id="scPlayer" width="632" height="323" type="application/x-shockwave-flash" data="http://content.screencast.com/users/TonPlomp/folders/Jing/media/ecf08f20-602b-446c-8a5e-73f7e46c7ce7/jingswfplayer.swf" > <param name="movie" value="http://content.screencast.com/users/TonPlomp/folders/Jing/media/ecf08f20-602b-446c-8a5e-73f7e46c7ce7/jingswfplayer.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#FFFFFF" /> <param name="flashVars" value="thumb=http://content.screencast.com/users/TonPlomp/folders/Jing/media/ecf08f20-602b-446c-8a5e-73f7e46c7ce7/FirstFrame.jpg&containerwidth=632&containerheight=323&content=http://content.screencast.com/users/TonPlomp/folders/Jing/media/ecf08f20-602b-446c-8a5e-73f7e46c7ce7/2011-03-28_1540.swf&blurover=false" /> <param name="allowFullScreen" value="true" /> <param name="scale" value="showall" /> <param name="allowScriptAccess" value="always" /> <param name="base" value="http://content.screencast.com/users/TonPlomp/folders/Jing/media/ecf08f20-602b-446c-8a5e-73f7e46c7ce7/" /> Unable to display content. Adobe Flash is required.</object>

    Ton

  2. Well, the DLL has to be the correct one for the actual LabVIEW platform of course. But since OpenG ZLIB is distributed as OpenG package, the package installer can make sure that the correct DLL is installed depending on the current LabVIEW version and platform. But what I want to avoid is any platform specific settings in the VI interfaces to the DLL. That would make distribution and maintenance of the library rather more complicated. I don't have a seperate wrapper DLL but have combined all the code (zlib, minizip, and wrapper code) into one library. This library is compiled into whatever platform shared library format is required including Win32, (Win64 hopefully soon), Mac OSX, Linux, and VxWorks 6.1 and 6.3........All the VIs and other help files are supposed to be platform independent and stay that way if possible at all. And the wrapper code is where I have spend some time in to make that independence happen.

    What about conditional disable structures? They should nowadays offer the functionality that you packed into the OGP installer.

    Ton

    (PS Welcom to Win7, it is superb to XP)

  3. Event structures are always active. They may not be executing, but if you have an event configured to 'Lock panel during execution', it will lock as soon as the event happens, this is by design.

    One of the examples why this is necessary is a convoluted state machine where the event structure only executes every 5 seconds, and you have a mouse down event for a picture. Let's say that executing of this event takes 2 seconds. Now if you are in bad luck (or your users are impatiently), you can get numerous 'mouse down' events during the 5 seconds loop effectively killing your app (every event takes 2 seconds in which new events are started...

    Ton

  4. Pete, what browser are you using?

    Currently LabVIEW only supports drag and drop from IE directly into LabVIEW, to use the snippet in another browser you can use a 'IETab' plugin which basically is IE in an activeX frame, or drag the image to your desktop (or another folder) and drag-drop from that location.

    ton

  5. I can offer two options for this.

    1. it looks like you could have made a programming error, use the auto-clean-up (ctrl-u) to verify you connected everything correctly
    2. You could force a recompile on your VI (ctrl-click on the run arrow, if memory serves right)

    Ton

  6. Yeah. It was some kind IT virus.. wacko.gif Everything seems to be okie today. I took half day leave because of this problem, yesterday.. laugh.gif

    Don't!

    [rant]

    Yes IT has a duty to protect the precious data of your company, however they should feel the pain when they screw up. Not you!

    Recently our IT department has enablde User-agent filtering....

    :throwpc:

    [/rant]

    Ton

  7. This is a big Gotcha for LabVIEW programmers at least once in their career. There will be times when you have two arrays, and index them both going into a for loop and the intent is that both are the same size, but if for some odd reason they are not there will be problems like this.

    Or how do I lose a reference:

    post-2399-0-79866400-1298493062_thumb.pn

    (shift registers are your friend)

    Ton

  8. To open a file once the app is open, the Dynamic Data Exchange is used which requires a few more keys to be added to the registry (he lists it). The end result is that the OS Open Document is called and everything works swimmingly :)

    Martin,

    could you revise the documentation in the LabVIEW wiki on this topic?

    Another note, I've posted an idea on the LabVIEW idea exchange on opening up 'OS open document' to mere mortal. Please vote!

    Ton

  9. I do use the SCC with LabVIEW (Visual Source Safe). What do I have to do, disable integrated SCC in LabVIEW? It seems that there are so many don't do this or don't do that (don't have the project open, don't use 32-bit PCs, don't use the Find feature, etc.) in order to have LV2010 work properly.

    Bruce

    What I have seen is that LabVIEW is requesting every VI one by one at the SCC portal followed by a burst were all the VIs are checked again...

    Strange, but that could harm the speed of your LabVIEW. But mostly I have seen this when opening a VI with a lot of dependencies in user.lib.

    Ton

  10. in the attached picture, button #1 is on the stop button and under the array. how to fix this error? the block diagram is also added.

    and there are more than one buttons. how to make when a button (button #1) which is clicked by mouse is active, the other buttons are passive?

    You can reoder the buttons by using the reorder tool on right side of the toolbar (it's cut in half in your image).

    When you have an event structure, you can lock the front-panel during the handling of the event. You can also set the 'disabled' state of a control.

    Ton

  11. I have just read the terms of use of NI.com (it's locate behind the legal section on the bottom of the ni.com homepage) and there is a section that NI gives the user the right to post a link to ni.com, unless the website disparages NI or any of it's products. (I had to look up disparage on google translate).

    So what is the legal background of such a claim in the international realm that is called internet? (note that the url of the terms of use implicatly mentions that it's US only).

    So any webpage that mocks LabVIEW or where a user mentions a bug inside LabVIEW is not allowed to link to ni.com.

    Strange.

    EDIT: the text is here.

    Linking. NI gives you a nonexclusive, nontransferable permission, revocable by NI in its sole discretion at any time, to display the word mark "National Instruments", in font and color that is nondistinctive from the font and color used to represent other html links to third party web sites on your web site, only to represent an html link to the National Instruments web site home page (www.ni.com), subject to the following terms and conditions, each of which you agree to comply with:

    No linking from any websites or pages that are obscene, pornographic, illegal, is permitted.

    No linking from any websites that disparage NI or any of its products or services is permitted.

    Ton

  12. index.php?app=downloads&module=display&section=screenshot&id=19

    Name: Variant Probe

    Submitter: Ton Plomp

    Submitted: 03 Jul 2009

    File Updated: 24 Aug 2012

    Category: Custom Probes

    LabVIEW Version: 2011

    License Type: BSD (Most common)

    Variant Probe V2.4.1

    Copyright © 2012, Ton Plomp

    All rights reserved.

    Author:

    Ton Plomp

    tcplomp@gmail.com

    Distribution:

    This code was downloaded from:

    http://lavag.org/index.php?app=downloads&showfile=19

    Description:

    A custom probe to put on a variant.

    It will create a tree based on the variant data, and populate the tree with the data, the attributes of the variant will be shown as well.

    The datatype description will determine the color of the tree items.

    Historical data is available as well.

    Version 2.0 introduces a Variant Tree XControl which can be used in any project. Located under the user.lib palette, it gives great flexibility to the programmer.

    The programmer has the possibility to give the end user permissions for the following actions:

    -Reset

    This will reset the whole tree contents

    -Traverse Variant Attributes

    This will enable/disable the traversion of variant attributes

    -Colorize

    This will enable/disable coloring of the actual datatype

    All of these customizations are available as properties/methods for the actual XControl as well, or you access them (while the owning VI is in edit mode) via the short cut menu.

    Installation method 1:

    Install the OGP file using VIPM (www.jkisoft.com/vipm)

    and you have a custom VariantProbe and xcontrol

    To use it add a probe to a variant datatype or to an array of variants.

    It can pause if the data changes, and will notify you if a change happens.

    Dependencies:

    The following OpenG packages should be installed:

    oglib_string>=2.6

    oglib_lvdata>=2.8

    oglib_comparison>=2.3

    oglib_error>=2.0

    Known issues:

    Is slow on large variants.

    Support:

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

    http://lavag.org/index.php?showtopic=10269

    Version History:

    2.4.1: Fixed issue #132: An array inside another array crashes the probe/XControl

    2.4: Immediate updating after changing of attributes

    Rebuild in LabVIEW 2011

    2.3: Fixed a bug that caused attributes not to be traversed on certain data-types

    2.2: Fixed a relinking bug

    2.1: Fixes a bug where unnamed cluster elements where used (http://lavag.org/topic/10269-discuss-variantprobe/page__view__findpost__p__67677)

    2.0: Added an XControl

    Show XControl in palette (under user.lib controls)

    Add coloring

    Add 'user permissions' on XControl

    Add Reset on XControl

    Add optionally traversing attributes on XControl

    Add optionally colorizing on XControl

    Add optionally restting on XControl

    1.2.0: Upgraded to LabVIEW 8.5 to use inheritance

    Support for Waveforms, timestamps and dynamic datatypes (thanks to Osvaldo)

    Added probe for an array of Variants

    Distributed as one .llb and added OGP installer

    If a Variant hasn't changed it's not decomposed (optimization)

    1.1.0: Support for attributes of variants

    1.0.1: Controls placed on a seperate pane

    Resize tree to upper pane

    Hide unused columns

    Limited maximum history length (default 10)

    Window resizable

    1.0.0: Initial release of the code.

    License:

    This code is distributed under the BSD License

    Copyright © 2012, Ton 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:

    * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

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

    * Neither the name of the Ton Plomp 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 THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT OWNER OR CONTRIBUTORS 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.

    Click here to download this file

    • Like 2
  13. Is there a technique to monitor / control the size of the user event queue? fully...

    You could set a 'time-out' for the event. When an eventstructure is activated and an event gets handled, the data includes the moment of the event, you could discard the event (eg. no processing) if the time is more than n seconds ago.

    That way you could relatively fast empty the queue.

    Ton

  14. TPMS: Tire Pressure Maintainance system.

    I am trying to replicate the tire measurement system in cars.

    I wanted to know what hardware is required for pulling this off.

    You'll need a pressure transducer, these normally output a 4-20 mA current (4 mA = 0 Bar, 20 mA = 12 Bar) and are fed using a 24 V power supply, you can interface these with a current measurement device, or a resistor with a voltage measuremernt device.

    For the pressure controlling you'll need a pump that can be controller by a 5V inpute or via a relays.

    Then you'll need some code to run a controller. And that is LabVIEW related.

    Ton

  15. I have suspicion that user events use the same event queue as user events generated by the UI, so if you're handling UI in the same progrma that might be a problem.

    Not as far as I know, for each event structure there are two queues:

    One with GUI events, and one with dynamic events (which cover user events).

    When the event structure is activated, it looks at both queues and picks the event with the lowest tick count. That is the single place where the order of events might not be the actual order of events (since WIndows uses a 16 ms. tick count).

    Ton

  16. <opening a can of worms>So, does that mean if you use the Mercuial logo in a VI icon that the VI must be licensed under GPLv2+?</opening a can of worms>

    Yes.

    I posted a spinning mercurial logo (gif) to the Mercurial mailing list and got two very prompt responses, one of them was from Matt Mackal (main developer Mercurial) explicitly (but polite) telling that to use the logo you have to license it under a GPLv2+ license or have a written license from him that allows you to create a deriviative. The logo is posted here.

    I explicitly asked him if I was calling the Mercurial command line only, then there is no need for a GPLv2 license and he acknowledged that.

    I am actually not even interfacing with Mercurial, only with LVMerge.exe and the Mercurial.ini file.

    I am thinking GPLv2 might be the correct way to go anyway??? wacko.gif

    Let me know what you guys think. Thanks.

    I've read up a little bit on the GPLv2 and it's not that hard of a license, and if you create an executable (thus stripping the icon of the VI) you should be able to use a more general license.

    The nice thing of the GPLv2 is that it's in the spirit of OpenSource software, it enforces the next-generation of your source-code to be open source as well.

    Ton

×
×
  • Create New...

Important Information

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