By hooovahhThis toolkit combines a variety of TDMS functions and tools into a single package. The initial release has a variety of features:
- Classes for Circular, Periodic, Size, and Time of Day TDMS generation with examples of using each
- Reading and Writing Clusters into TDMS Channels
- XLSX Conversion example
- File operations for combining files, renaming, moving, and saving in memory to zip
- Basic function for splitting TDMS file into segments (useful for corrupt files)
- Reorder TDMS Channel with Demo
There is plenty of room for improvements but I wanted to get this out there and gauge interests. The variety of classes for doing things, along with VIMs, and class adaptation makes for using them easier. If I get time I plan on making some blog posts explaining some of the benefits of TDMS, along with best practices.
By hooovahhHere is the Hooovahh Array VIMs. This initial release contains VIMs for manipulating array data, which are intended to replace OpenG functionality, but with the added benefit of data type propagation, and increased performance using newer array manipulation techniques. In later versions other Array manipulation functions were added moving all the OpenG stuff to their own palette.
Version 2.0 changed the suffix naming standard. Updating may mean replacing calls to the new versions since the name on disk has changed. This was for consistency and I'm sorry for breaking compatibility. The added type defs in 2.0 may break compatibility too but these help avoid code breaking bugs since VIMs allowed any data type previously.
Most of the OpenG functions are unchanged, but a few use the newer conditional and concatenating tunnels. And a few functions have added performance based on other inputs. For instance the Delete Array Elements can operate in a more efficient way if the input indexes are already sorted. The Filter 1D array can also be more efficient if the input is known to not contain any duplicates.
Because these packages contain VIMs, they require LabVIEW 2017 or newer. Having these functions be VIMs mean all functions work with various array data types. Included functions are:
Conditional Auto-Indexing Tunnel Delete Elements from (1D or 2D) Array Filter 1D Array Index (1D or 2D) Array, Scalar, Row, Column Remove Duplicates from 1D Array Reorder (1D or 2D) Array Reverse 1D Array Slice 1D Array Sort (1D or 2D) Array Convert 1D to 2D Convert 2D to 1D Find Subarray Force Array Min/Max Size Foreign Key Sort
By GriboA set of simple VIs that uses the LibreOffice / OpenOffice UNO API. The result is very similar to MS Office ActiveX API. Currently, only Calc is supported.
This was tested on Windows 8 with LV2013 64 bit and LibreOffice 64 bit.
By PorterThe SET Localization Toolkit provides more convenient edit-time language switching support for LabVIEW 2013 projects.
UI text is extracted from an existing project and stored in a localization file. Additional languages can be added then applied to the project using the apply language wizard.
The idea is to be able to quickly apply a language to a project before distribution. Applying the language at edit-time allows you to fix up the UI in the target language. Change fonts and re-size controls so that it looks right before compiling it.
- No modification of project's source code required. No additional dependencies.
- Support for switching code pages.
- Ability to define shared resources.
- Resources referenced via UID. Changing labels of control does not break linkage.
- Resources can be exported to CSV file for external translation.
- Resources stored as UTF-16LE text.
- Ability to translate RTM files.
- Unicode support enabled in the LabVIEW.ini file
- Download the ".vip" file and install using VI Package Manager 2014
- Make sure that "UseUnicode=True" is set in the "labview.ini" file
- From within any LabVIEW window, select "Tools->LAVA->SET Project Editor"
By BenoitThere it is.
The complete library for the MCP2221A. I2c adapter, I/O in a single IC. I love that one.
Let me know if any bug is found.
I try to make that library as much convenient as possible to use. Two version available 32 bit and 64 bit. little note: to open by serial number, the enumeration need to be activated on the device first. (open by index, enable the enumeration) It needs to be done only once in the life time of the device.
PLEASE do not take ownership of this work since it is not yours. You have it for free, but the credit is still mine... I spent many hours of my life to make it works.
By BenoitThis is the only way I found how to have a bunch of color that are unique and easily distinguishable. The maximum I saw in the web was about 26. This one offer 55 of them without gray tone. You can modify this VI to support gray tone as well and goes up to 60 colors.
Please use the new version at: New version
By BenoitThis XML test report library is available for you to modify at your will.
It is based on the IPC-2547 standard so it is easier for any other application or database to parse.
The html file report offered by LabVIEW was not sufficient for my need.
So I created those. enjoy!!!
By hooovahhThis application is designed to help manage a system, that has multiple versions of LabVIEW installed. It does this by adding an icon in the system tray for launching any version of LabVIEW installed. This may work with 64-bit versions of LabVIEW but it has never been fully tested. It has several other features which are useful when having multiple versions of LabVIEW installed.
Launch any version of LabVIEW installed from the system tray icon. Kill or restart any version of LabVIEW running from the system tray icon. Abort all VIs running in all versions of LabVIEW from the system tray icon. (not asynchronous clones at the moment) Abort all private context VIs from the settings dialog found by double clicking the system tray icon. (not asynchronous clones at the moment) Control what version of LabVIEW is used on opening a VI or LabVIEW file. (File Extension support in the configuration dialog) Configuration can chance the behavior of this but by default it will ask what version of LabVIEW to open a VI in if more than one version can open it. By default a VI set to Run On Open will always ask what version, and if you would like to run it on open or just open it. Shift can be held when opening a VI to always be asked what version to use. CTRL can be used to select the default option which is generally the last version used. By default if only one version of LabVIEW is running, and it can open the VI, then it will be opened in that version. Other file extensions can be selected after the install. Read the Readme Usage for more information on how this works. For this software to function properly, at least one LabVIEW Run-time, or development needs to be installed which is version 2011 or newer. The source includes all versions from 2011 to 2017. The installer includes the builds from all versions 2011 through 2017. An AutoIt script and source are included which selects the right EXE based on what version of the run-time engine are installed. This is why multiple versions are included in the installer.
Also for VI Server functions to work properly each version of LabVIEW needs to be configured to have TCP/IP configured and a unique port. This is all done automatically through VIPM so my suggestion is to configure all versions of LabVIEW through VIPM, at which point this tool should work. Some features of this will work without this enabled but not all of them.
This is the LabVIEW Tray Launcher, originally discussed and developed in 2009 here.
A fully built installer for version 1.5.0 can be found here. Just download the installer and run it. It should add all the needed files to the Program Files directory, and edit the registry if you allow it during the install.
Test stand had a touch screen. User wanted radio buttons instead of a pull-down menu. Wanted tests to run on pressing the button and pass/fail indication thereof. So I did that for him. Here is the stand-alone proof-of-concept that I worked up for it. Arrays are used so Boolean texts can change to suit different models of unit under test. If a Boolean text is blank, then that button will go invisible meanwhile, there being as many (up to 7) or as few (down to one) as may need be.
I should mention, in case it's not obvious, that when in actual use, the three arrays are hidden inside of a sub-VI and not (as shown here) visible to users as part of the front panel.
By RomainPFor a personal project, I needed to communicate between my computer and a SPI device slave device. So, I use a FTDI chip FT232h.
I have adapted the library MPSSE I2C already available on this website to make it works for SPI.
Warning ! VI are not 100% tested (especially Read functions), I provided it as it is.
By Joseph GorseInitial release. It is hairy, but less so than the original import wizard.
By o u a d j i(latest version 5.5 - November 3, 2015 - LabVIEW 2010)
Chess Game with artificial intelligence 100% LabVIEW
AI : algorithm MinMax + Alpha-Beta pruning
two game levels : "novice" and "Jedi"
editing interface (edit on/off)
a) moving mode : left-clic on the starting square, left-clic on the destination square
b) positioning mode : right-clic on a square opens a context menu to choice the piece.
This engine 5.5 is stronger than the previous engine 5.0 (Jedi level)
unzip - run "Chess_ouadji.vi"
if you like this Chess Game, a kudo is most welcome! (here - first post)
By BenoitThis Vi Calculate th Cp and Cpk values of a dbl array values.
It's quite usefull to do some statistical analysis of a process capability.
By CopperDAllows new functions to be compiled during runtime by using libtcc. http://bellard.org/tcc/
Features Full ANSI C compiler ISO C99 extensions (Missing only complex and imaginary numbers) GNU C extensions (See TCC Docs) TinyCC extensions (See TCC Docs) GNU-like inline assembler 32bit & 64bit opcodes depending on DLL (See TCC Docs) Compile to memory to call as function or disk as exe Allows for dynamic code Pointer safe checks
Adding 2 numbers and using return to get the result
Using system to call cmd
Inline x86 assembly
Passing in information using argc and argv
Using pointers to pass a string in and an SHA512 hash out
Uses libtcc unmodified, so for security reasons you can download the dll from the author's website or compile your own from source. The dll is included if you wish to use it.
Some very basic examples that show off only a tiny subset of the features this compiler offers. Unless you are very careful, compiling functions during runtime can lead to unstable code. (Test before you deploy) All examples should run without issue but modification can and will lead to crashing. (Save often)
By CopperDSimple Mandelbrot explorer that I wrote a few years ago.
Many predefined color pallets
Rolling color pallet to produce motion effect
Ability to customize the color pallet
Log color mapping
Keyboard or mouse control
Basic shortcut keys
Saving high res images
Clustering to clean up code more
Load project in LabVIEW 2015 32/64 bit
Start program using Mandelbrot Main.vi
By BenoitThere it is... finaly...
Because the code given in the FTDI web page is not convenient, not working and haven't been developed by real LABview programmer, I decided to create a library for the I2C.
a version for SPI will come soon.
This library is free to use. If FTDI want's it in ther site, I do not allow you to publish it since you didn't help any of your customer with LABview.
but of course feel free to publish this link.
By BenoitThis XControl has the nice feature that a Calendar control should give you.
Multilanguage support by property node.
The input and output are Labview Time Stamp.
When selecting a date, the date in the calendar become light blue.
Please you receive this XControl for free. The minimum you can do is to rate it.
By BenoitThis VI list all VISA session opened and allow you to close all of them.
Some times when the GPIB stuck and the VI wont stop..... This VI is a better solution than reboot.
By BenoitThis VI allow an easy way to create HTML color table in the LabVIEW report generation toolkit. This VI should be connected to the "Append User Formatted HTML to Report.vi".
For this version, all the column are the same size. But alignment and color of each cell can be defined.
Please rate this file if you download it. It's free... you can at least give some second of your time to rate it... I spend some hours to make it...
By ShaunRThis is an experimental demo to investigate VIMs (vi macros). It was a bit of fun to see if VIMs could be used to encapsulate events in LabVIEW which was a bugbear of mine for quite some time. You can see the entire thread here. VIMs are a NI experimental technology similar to Xnodes but less mature.
The purpose of this release is to clarify the previously unstated licence since other forum topics are building on the original demo so they need a permissive licence (MIT). This release serves as an unambiguous statement to that effect. There are a few differences from the original which I have decided to call version 0.1 but they are minor.
This may or may not work for you out of the box. If it doesn't then please do not post. The purpose is to clarify the licence for others to build upon; not to provide a working example. The VIM technology is itself experimental and unsupported by NI so most issues you will encounter will be due to this and It is unlikely there will be another version posted here.
Copyright 2015, Merecs Engineering GmbH&Co. KG
All rights reserved.
This code has been tested to run under LabVIEW 2014.
- Enables Tabbing into and out of Cluster-Controls
- Also works with Clusters on Tab-Controls
If you have any problems with this code or want to suggest features, please let me know or post to the LAVA forum.
Initial release of the code.
By ComradeThis snippet demonstrates how to handle the runtime contextmenu of various controls in one single dynamic event case. Notice how you only need to bundle the different references of all the controls into one "Register for Event" input. Discrimination between the different controls happens inside the dynamic event handling case as is shown here with singling out one control for which the conxext menu remains standard while for all other controls just a singular menu item is generated.
This was created as an answer to the following post:
LabVIEW version is 2013
By ComradeThe VI acquires all front panel control (and indicator) references and one by one passes them into a variant using its attributes. This way of storing the references makes them faster to be found within an application than by storing them in a cluster along with their name and using "search 1D array". The idea of this use case came from a nugget by NI's Darren.
We have recently developed a toolkit that allows you to use Quick Drop plugins in Right Click Framework or LabVIEW Speak platforms.
Named RCF LVS Conversion Toolkit, this toolkit provides an easy solution for JKI Right Click Framework (RCF) and LabVIEW Speak (LVS) lovers who want to use a quick drop plugin in RCF or LVS. Now, you wont be disappointed when you see a useful plugin not written in your favorite platform's plugin format.
Procedures are simple:
Open the toolkit by going to Tools Menu >> Synovus >> RCF LVS Conversion Toolkit...
Select the target Quick Drop plugin VI
Type the command name in Right Click Framework or LabVIEW Speak
Now you can use the Quick Drop plugin in Right Click Framework or LabVIEW Speak platform
Automatically converts a QD plugin to RCF or LVS plugin format
Warns the user if repetitive commands are installed.
Provides an instruction as user clicks help button.
Helps the user navigate to the plugin folders (LVS, QD and RCF)
Modifying the functionality in Quick Drop VI will automatically update the functionality in Right Click Framework or LabVIEW Speak
Please let me know if you have any questions. Suggestions and comments are welcome
Note: RCF and LVS only update their lists of commands at startup. If you use the RCF LVS Conversion Toolkit when RCF and LVS are open, please restart these platforms.
By hooovahhHas your stressful day at work got you down? Want to take a load off and relax with a game? Why not a LabVIEW game? Here is a game I made a while ago and forgot about. It is called Traffic Jam similar to this, or this one called Rush Hour. The basic goal of the game is to get the red car out of the parking lot, by moving the other cars. Cars can only move in one direction and can't turn.
My coding style has improved over the years, but I'm not yet ashamed of the work I did on it. It was fun working with the picture control and generating the UI based on the level files.
This game comes with 122 levels. Why 122? Because I forgot to put in the last 18. Feel free to add them yourself by editing the Set text files.
This game also keeps track of your high score, so you can try to go back and do it in less moves.