-
Posts
317 -
Joined
-
Last visited
-
Days Won
7
Content Type
Profiles
Forums
Downloads
Gallery
Files posted by gb119
-
Waveform XControl
By gb119 in X-Controls
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,114 downloads
Updated
-
Vector Waveform XControl
By gb119 in X-Controls
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,240 downloads
Updated
-
Scripting Tools
By gb119 in VI Scripting
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,907 downloads
Updated
-
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,476 downloads
Updated
-
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,764 downloads
Updated
-
Toolbar XControl
By gb119 in *Uncertified*
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,061 downloads
- user interface
- xcontrol
- (and 1 more)
Updated
-
Swap Terminals RCF Plugin 1.0.2-8
By gb119 in JKI Right-Click Framework Plugins
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,053 downloads
Updated
-
Generate Palettes
By gb119 in LabVIEW IDE
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,551 downloads
Updated