Imperative vs Declarative programming paradigm

Blogs, LabVIEW Blog, New Learnings
This is a series of blogs where I collect some interesting programming concepts, new things I learn As LabVIEWers we're familiar with few programming paradigms like object-oriented (OOP). Have you heard of functional programming?Imperative Programming changes the state of the program. OOP is an imperative programmingDeclarative Programming: doesn't change the state of the program. Functional is a declarative programming Wikipedia has more details on the programming paradigm 2 main principles of Functional Programming Don't mutate. Don't change the state of the program, whatever data comes into the function make a new copy of the function and return the new data without modifying the original data. Keep the function purely independent ie., even if you want to play with the global variables, then pass that global variable as arguments to that function…
Read More

LabVIEW 64-bit Database Addon

Blogs, LabVIEW Blog
Up until LabVIEW 2018, National Instruments provided database addon only for 32-bit version. Those who works with 64-bit LabVIEW version, this could be a roadblock if ever wanted to run the app only in 64bit and still need to access databases. Access Database from both LabVIEW 32bit and LabVIEW 64bit Short Answer A simple trick which works. If we copy the database addon from 32-bit LabVIEW installation to 64-bit LabVIEW installation, it still works without any issues. However ensure that other database file (.udl etc) and ODBC connections are setup for 64bit as well. Checkout my Oracle DB Connection learnings as well here Long Answer I used Oracle database via ODBC for an application in 32-bit. To get it working in 64 bit I had 32-bit version of same LabVIEW…
Read More

TestStand + SVN Diff Configuration

Blogs, LabVIEW Blog
When you're extensively working in TestStand with multiple developers, you could easily end up in the need of merging the different sequences and TestStand File Diff and Merge Utility comes in handy. However, it would be handier for us to diff the files right from SVN on windows explorer without need to go through the regular file selection dialog box. Here is a quick video on this for reference. https://www.youtube.com/watch?v=UsvqPt8MB0g&feature=youtu.be For LabVIEW diff with merge, there is a good article here from Delacor.
Read More
Not Enough Memory in TestStand + LabVIEW environment

Not Enough Memory in TestStand + LabVIEW environment

Blogs, LabVIEW Blog
If you have your test running in 32bit version of LabVIEW and 32-bit version of TestStand, and especially if your application is dealing with image processing algorithms, then there are numerous chances you end-up with a Not Enough Memory dialog from LabVIEW as below. There are some creative way and some workaround way to fix this memory issue. Not enough memory dialog from LabVIEW. 1. Unload option Find out the step which consumes most memory and change the Unload Option for that step in TestStand properties. I prefer Unload after step executes. This option would unload that step from the memory and thereby releasing any data stored in that module. Ensure if this module deals with any references, which upon closing, other modules might get affected. Choosing Unload after step…
Read More

SVN Externals

Blogs, LabVIEW Blog, Snippets
If you are looking to reuse a project which already exists in another project and if you need that new project gets updates of the already existing project then-and-there, there is a very good feature in SVN called as externals to help on this kind of requirements. Advantages You can avoid multiple copies of the same source in SVN/source control repositories. Get updates from the root project as and when there is an update.  So no need to manually copy the project again when there is an update. SVN-logs are maintained for the root project from the new project and hence better historical control. In case you don't need updates from root project, use specific revision to freeze to selective version. How does that works? This can be best explained…
Read More

Simple Event Logger for LabVIEW Developers

Blogs, LabVIEW Blog
An event logger is a logger which can log various events or error happening in an application run.  Usually it would be a simple text file or csv file with info about the run details of the application.  An event logger can help in various ways. It can help in identifying the error happened after an operator simply tells you that "Hey you developer! Something went wrong in your application, debug it quickly, production is paused cuz of this issue!!".  In such case, if you have an event logger, you wouldn't need to rerun the app to identify error again.  Just simply looking at the error log can give a hindsight. It can help if the LabVIEW application is completely parallel, then identifying the root-error becomes difficult with lots of…
Read More

SPI communication from LabVIEW using FT4222

Blogs, LabVIEW Blog
I've been recently asked to help out with some SPI communication support with FTDI FT4222 device.  For those who don't have idea about this comm., it's one of the famous inter-controller communication method.  The SPI comm. speed with FT4222 can go up to 53.8Mbps.  Really, it's that much speed however you should have board designed for that much speed. Here is a short story on how I did it. I developed low-level LabVIEW drivers which essentially uses the LibFT422 DLL from FTDI.  The 4 important SPI comm., functions to be achieved are SPI Master Read SPI Master Write SPI Slave Read SPI Slave Write After writing the low-level drivers in LabVIEW, I wanted to do the real testing. But to do the real testing, I don't have access to the…
Read More

A Unique Momento from Tessolve Team..!

Blogs, LabVIEW Blog, Snippets
It's very honourable to receive such an unique momento and team congratulations from Tessolve for the such an unique project. For Tessolve in itself this was not a regular project. I was called to develop a test system for calibrating a sensor from IDT.  It's an 8-sites parallel test executor developed with actor-framework in LabVIEW to make it highly scalable in future.  The project in itself is special in a way that water flows through the test system.  Then don't fail to imagine that water flowing in test floor too.!  Yes, literally hit happened and everyone had to ensure all safe ways to safeguard the other testers in test floor. I had great pleasure in architecting this software in LabVIEW, developing myself and getting help from a team of developers to support…
Read More

Running LabVIEW code through VPN Netowrks

Blogs, LabVIEW Blog
Have you ever executed a huge set of LabVIEW code which resides in other PC but you have to run them in your PC through VPN network channel?  Recently there's been a request from one of our customer to do so.!  The reason is "CONFIDANTIALITY" .  The source code can't be moved to a vendor PC and can only be accessed via their VPN. (more…)
Read More

Recover Files Using Window’s “Previous Version” Property

Blogs, LabVIEW Blog, Snippets
Have you ever encountered that due to some bug in your software the imporant file has been deleted or overwritten?  May be that file could be important data logged in the production or could be your old source code.  Do you know that windows has some capabilities to recover those missed files? Recently I encountered such issue.  My own holy software which passed through all unit test cases, somehow misbehaved in the production site.  It adds more awkward moment if customer sees that issue and says "OMG..! My data are lost..!  Where is my data?". A quick google search on recovering windows files gave me a relief that Microsoft Windows in itself has some recovery given that if the restore points are configured in that Windows.  Since it's production PC,…
Read More