Jump to content

gb119

Members
  • Posts

    317
  • Joined

  • Last visited

  • Days Won

    7

Files posted by gb119

  1. Array Function XNodes

    lava_lib_LabVIEW_API_array_xnodes v1.4.3.36 by University of Leeds
    Author: Gavin Burnell
    Copyright: Copyright © 2014, University of Leeds
    License: BSD
    Compatible LabVIEW Versions: >= 2012.
    Compatible OS Versions: ALL.
     
    Description:
    Description:
     
    This is a collection LabVIEW 2012Sp1 XNodes.
     
    XNodes are a hidden and unsupported feature in LabVIEW >8.x. As such, this code may not necessarily work in versions of LabVIEW > 2013 and the technology is not supported by NI. On the otherhand they are really quite useful.
     
    Because XNodes are scripted at edit time they offer a form of polymorphism far superior to polymorphic vis as they will support any array type and not just ones that the developer has provided polymorphs for.
     
    This package contains the following XNodes:
     
    * Array Dimension Array
     
    This XNode operates in a fashion similar to the Array size primitive Xnode except that it always returns an array
    of sizes of dimensions. For a 1D array, this is an array with 1 element, for n-D arrays where n>1, this is the same as the primitive and for scalar inputs, returns a zero length array.
     
    * Array  Dimension and Index 
    * Array Size and Unbundle
     
    These are slightly different versions of the same XNode. It will take in an n-dimension array and return N I32 outputs with the dimensions of the input array. Array size and unbundle is perhaps the better named version.
     
    * Array Dimension
     
    This is equivalent to the Array Dimension Array coupled with an Index Array node to return as an I32 the specified dimension of the input array. If the specified dimension is greater than the dimensionality of the input array, -1 is returned.
     
    * Filter Array
     
    This XNode splits the input array into two sub arrays according to a boolean array input - one for elements where the boolean filter was true and the other where the filter was false.
     
    * Foreign Key Sort
     
    Sorts one array based on the sort order of a second array - useful when you have an array of items and an array of keys and you want the first array elements in order of their keys.
     
    * Shuffle Array
     
    The inverse of an array sort - randomises the order of the elements of an array. For 2D arrays it can randomise either the rows, columns or both rows and columns.
     
    * Unindex and Unbundle.xnode
     
    Performs the inverse of Index and Bundle Cluster Array. Takes an input array of clusters and un-indexes and unbundles each cluster and returns arrays of each element of the original clusters. This is equivalent to feeding
    a cluster array into a for loop with auto-indexing turned on, unbundling all elements, and wiring back out of a for
    loop with auto-indexing turned on in order to generate arrays of each element.
     
    * Minimum Array Size
     
    This XNode will take the input 1D array and either make it at least n elements long, or exactly n elements long. If additional elements are needed, the default value for the element is used and the new elements are appended to the end of the array. For the fixed-size variant, if elements are to be removed, they are removed from the end of the array.
     
    Known Issues:
     
    One of the palette entries is (a bit) broken: Array Dimension and Index appears as "Help" in the palette, but otherwise works fine.
     

    2,763 downloads

    Updated

  2. Generate Palettes

    Generate Palettes-1.0.0.04.zip
    ~~~~~~~~~~~~~~~~~~~~~~~~~~
    Copyright © 2007-2009, University of Leeds, UK
    All rights reserved.
    Author:
    Gavin Burnell
    G.Burnell@leeds.ac.uk
    Distribution:
    This code was downloaded from the LAVA Code Repository: http://lavag.org/index.php?app=downloads
    Description:
    This is a utility for automatically creating palette menu files from a library or LabVIEW class.
    LabVIEW offers the option of including palette files in .lvlib or .lvclass files and for setting one of these palettes to be the default palette file when the user right-clicks by a member vi or class wire. This is very useful, but the LabVIEW project manager has some flaws when it comes to
    having multiple palette files with the same name in a project that can easily result in a corrupt xml file. This utility gets around this problem by creating uniquely named palette files that reflect the project structure of the class or library.
    In the case of class files, if the class is a child class the utility will attempt to lcoate a palette file for the parent class. This makes it easier to have all parent methods readily to hand when right clicking on a class wire. Couple with the option to work out the complete class parentage and create all necessary palettes it is quite easy to setup a chain of palettes through a long descendent list of classes.
    Todo:
    I've got various ideas to implement in future versions:
    1) Look for gone away or moved items in the palette files and attempt to relocate them.
    2) See if I can access Endevo Goop Developer class properties to use different icons for public/private/protected class folders.
    3) LabVIEW project file support (should be quite easy to find all class, library files within a project)
    Dependancies:
    OpenG File Tools
    Support:
    If you have any problems with this code or want to suggest features:
    <LAVAG forum here>
    h
    Change Log:
    1.0.04 Fixed silly bug where default palette was set after the library was saved. Sorted out relative paths somemore.
    1.0.03 Added code to set default palette file (thanks to Ton Plomp !) and move refresh palettes to only run once.
    1.0.02 Added some more documentation to the sub-vis.
    1.0.01 Original release
    License:
    Copyright © 2007-2009, University of Leeds
    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 University of Leeds 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.

    1,547 downloads

    Updated

  3. OpenG Array XNodes

    OpenG Array XNodes v1.4.2.43 by University of Leeds
    Author: Gavin Burnell
    Copyright: Copyright © 2011, University of Leeds, 2002-2007 Cal-Bay Systems, Inc., Jim Kring.  2006-2007 MKS Instruments, Inc
    License: BSD
    Compatible LabVIEW Versions: >= 2012.
    Compatible OS Versions: ALL.
     
    Description:
    This package simply reimplements the OpenG Array tools as a set of XNodes. This has the advantage that any array time (apart possibly from arrays of LVOOP classes) can be worked with rather than just those that have polymorphs in the original OpenG versions. The disadvantage is that you can't inspect the code, but it's the same honest !
     
    What is an XNode ?
    ~~~~~~~~~~~~
     
    An XNode is a type of LabVIEW library (like a LVOOP class, XControl) that defines a collection of vis that provide on-the-fly scripted nodes on on the block diagram in LabVIEW. In other words, they allow you to create a node whose code is generated programatically as it is dropped on the block diagram or when inputs are changed. This allows the developer to simulate some of the effects of LabVIEW's builtin primitives such as polymorphism, node resizing and edit time configuration.
     
    Unfortunately, it is not possible to edit XNodes in the regular IDE (unless you work for National Instruments) as they are locked in the IDE. However, the individual vis are not necessarily locked and either by editing the xml file of the XNode directly, or with the help of some third party tools listed below, it is possible to edit and implement new XNodes.
     
    For a fuller introduction, you are rrecommend to read Adam Rofer's "XNodes - A Crash Course" presentation (http://lavag.org/files/file/56-xnodes-a-crash-course-powerpoint).
     
    For developing XNodes I use (a slightly modified) XNode Manager by Aitor Solar (http://lavag.org/files/file/57-xnode-manager).
     
    There are also a couple of ini file settings that make it easier (but still not trivial) to debug XNodes:
    XNodeWizardMode=True
    XTraceXNode=True
     
    At all times remember that XNodes are not a supported technology as far as NI is concerned (as of LV 2010Sp1 anyway) and you should expect neither sympathy nor support from NI if bad things happen as a result of using them. 
     
    The algorithms used in this toolkit are taken from:
     
    oglib_array v3.0.0-1 by OpenG.org
    Author: Jim Kring <jim@jimkring.com>, Doug Femec <doug_femec@mksinst.com>
    Copyright: 2002-2007 Cal-Bay Systems, Inc., Jim Kring.  2006-2007 MKS Instruments, Inc.  All rights reserved.
    License: BSD
     
    Description:
    The array package contains several routines for operating on array data.

    3,474 downloads

    Updated

  4. Scripting Tools

    lava_lib_LabVIEW_API_scripting_tools v0.22.1.21 by University of Leeds
    Author: Gavin Burnell
    Copyright: Copyright © 2007-2010, University of Leeds
    License: BSD
    Compatible LabVIEW Versions: >= 8.6.
    Compatible OS Versions: ALL.
    Description:
    This is a LabVIEW 8.6.1 Library of VIs to help with scripting.
    The public VIs include routines to get hold of the block diagram references, control terminal references, get the connector pane reference and select the connector pane pattern and wire controls up to it. There are a number of routines to help wire the block diagram up, including creating a selection of the primitives (I got bored of coding them all up !).
    I've stuck in some routines that work with tags - hidden away is the capability to tag LabVIEW vi-server objects with arbitary data. One possibility is to use this to identify bits of the block diagram of a vi for moving and rewiring via scripting.
    The scripting Tools includes a separate XNode support library that provides routines to help scripting and terminal adaptation in XNodes.
    There are some routines to help with undo transactions new to this release.
    This Package Conflicts with these other packages:
    LAVAG_scripting_tools >= 0.0
    Scripting Tools >= 0.0

    8,884 downloads

    Updated

  5. Swap Terminals RCF Plugin 1.0.2-8

    Swap Termianls RCF Plugin - 1.0.1-7
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Copyright © 2010, Gavin Burnell
    All rights reserved.
    Author:
    Gavin Burnell
    G.Burnell@leeds.ac.uk"]G.Burnell@leeds.ac.uk[/email]"]G.Burnell@leeds.ac.uk"]G.Burnell@leeds.ac.uk[/email][/email]
    Distribution:
    This code was downloaded from the LAVA Code Repository: http://lavag.org/ind...p?app=downloads
    Description:
    This is a plugin for the JKI Right Click Framework (version 1.0.2).
    Ever inserted a primitive like add, subtract, greater than, or less than into a wire and manage to get LabVIEW to
    wire up the 'wrong' input because you right clicked one pixel the wrong side of the wire ? Ever looked at code and
    realised that you've got the input terminals hooked up the wrong way round on a select ? Then this plugin is for
    you, simply select the block diagram primitive, activate the JKI RCF plugins and select 'Swap Terminals'.
    This plugin will work on any primitve function or 'growable' function that has two and only two inputs and also on
    the 'Select' and 'In Range and Co-erce' nodes to swap the top and bottom inputs over and rewire the wires. In
    version 1.1 it will also handle 'Bundle' and 'Bundle by Name' which have two input elements and a special case of
    two wires that are wired into different terminals of the same node.
    Dependancies:
    JKI Tools Right Click Framework >=1.0.2
    Support:
    If you have any problems with this code or want to suggest features:
    Change Log:
    1.0.2-8 Corrected a regression in previous version with bundle/bundle by name nodes.
    1.0.1-7 Rereleased as a VIPM Package File built using VIPM 2010. Should have correct package dependencies for RCF Packages
    1.0.1.1 Added growable functions with special cases for bundlers and two-wires-to-the-same-node. Refactored the code
    to kake extending it for other GObject types easier in the future.
    1.0.0.1 Initial release on LavaG
    License:
    Copyright © 2010 Gavin Burnell
    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 University of Leeds 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.

    2,052 downloads

    Updated

  6. Toolbar XControl

    lavag_lib_User_Interface_XControls_Toolbar XControl v1.0.0.3 by University of Leeds
    Author: Gavin Burnell
    Copyright: Copyright © 2013, University of Leeds
    License: BSD
    Compatible LabVIEW Versions: >= 2012.
    Compatible OS Versions: ALL.

    Description:
    This is a native toolbar for LabVIEW implemented as an XControl. It supports a single row of square buttons which maybe latching (sticky) or transitory (command) style buttons drawn in one of 4 different styles (system, square, flat or rounded). The toolbar will report button clicks via a value change event, but allows the possibility for further integration into other messaging systems.

    The buttons are represented as instances of a button base class that provides methods for drawing the button, updating tooltip text or responding to clicks. Overriding these methods in subclasses allows a greate flexibility of response. Included in the package is a 'vi-button' class that stores a vi reference with each button and executes it when clicked.


    This Package depends on these other packages:
    oglib_string >= 4.1.0.12

    1,060 downloads

    Updated

  7. Vector Waveform XControl

    lavag_lib_User_Interface_XControls_Vector_Waveform v1.0.2.25 by University of Leeds
    Author: Gavin Burnell
    Copyright: Copyright © 2011, University of Leeds
    License: BSD
    Compatible LabVIEW Versions: >= 2018
    Compatible OS Versions: ALL.
    Description:
    This package uses two instances of my Waveform XControl to make a vector waveform - i.e. magnitude and direction or x and y co-ordinates. The resultant vector waveform is plotted on the third tab of the Xcontrol. The XControl can be switched between polar or cartesian co-ordinate modes and it is possible to vary both co-ordinates together or repeating one for every point on the other - thus allowing 2D scans to be built up. The waveform is represented as a complex number where the real co-ordinate corresponds to the X axis and the imaginary to the y. I use this in my own code to allow users to control both a vector magnet and to setup a laser scanning system.
    Release Notes:
    This Package depends on these other packages:
    lavag_lib_user_interface_xcontrole_waveform_xcontrol >= 1.1.2.0.18
    oglib_array >= 3.0.0

    1,236 downloads

    Updated

  8. Waveform XControl

    Copyright © 2008, University of Leeds, UK
    All rights reserved.
    Author:
    Gavin Burnell
    --see readme file for contact information
    Description:
    This XControl provides a function generator wrapped up in an XControl that outputs an analogue waveform
    data type. Supports sine, square, ramp, saw tooth, parabolic, cubic, quartic and arbitrary functions with adjustable amplitudes, offsets, and number of periods with no further coding. User interface provides a graph that updates in response to user changes to the controls.
    XControl will adjust layout as it is resized, and provides properties to set the visibility of the axes scales, y=0 marker and a current index position marker.

    2,113 downloads

    Updated

×
×
  • Create New...

Important Information

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