You are here


Direct Digital Synthesis (DDS) - Part I of III

January 15, 2018

What is DDS?

The objective of DDS is to provide a highly flexible and accurate analog/digital output generation mechanism. It excels at producing signals with extremely sensitive timing requirements, like frequency sweeps and high-frequency voltage switching (>1MHz). Before learning how to design a basic DDS engine, let's review the basics of traditional output engines and the pitfalls they present with highly dynamic output requirements.


UI Reuse: Dynamic Events and Skinnable Views

June 1, 2017

Why Develop Code for Reusability?

All software developers appreciate the value of code reuse. It allows for faster development and creates more time-tested and reliable code. It gives added value to code with possible bonus features beyond customer requirements, etc. The only potential downside is that this code can take longer to design and develop initially. However, the main requirement for reusability is modularity, and this is good practice anyway.


Easing Development with DLLs in LabVIEW

March 2, 2017

As LabVIEW developers, we are comfortable developing in LabVIEW. However, sometimes we need to leverage code from other languages. This is where DLLs come in. For those of us that are less than comfortable with coding languages outside of LabVIEW, using DLLs can be daunting and frustrating. The Import Shared Library Wizard can make your life easier, however, it is not very reliable when using custom data types. This forces us to use Call Library Function nodes (CLNs) for DLL calls, which can bring up a whole bunch of problems with no intuitive debug strategy.


Object-Oriented LabVIEW: Polymorphism (part 3 of a 3 part series)

September 7, 2016

If you attended my presentation at NI Developer Day back in March, you probably recognize the content of this three-part blog series. The premise of my presentation was simple and rather obvious given its title “You Already Know How to Use LabVIEW Classes.” In the end, object-oriented LabVIEW is simply a programming style that encourages software modularity and reuse. The doing is easy because it requires mostly bits and pieces with which we are already familiar.

Category: Tags:

Object-Oriented LabVIEW: Encapsulation (part 2 of a 3 part series)

July 18, 2016

In my previous post, I introduced the concept of object-oriented inheritance. I also suggested that, as a regular G developer, you already know enough to start writing your own object-oriented code.

Maintaining this same (I hope empowering) perspective, let’s dive into the next foundational principle of object-oriented programming: encapsulation. Look for a post covering the final principle (polymorphism) shortly.

Category: Tags:

Object-Oriented LabVIEW: Inheritance (part 1 of a 3 part series)

May 25, 2016

You Already Know Enough to Get Started

If you do not currently leverage object-oriented programming techniques in your LabVIEW code (believe it or not) you likely know more than enough to get started. Object-oriented programming is not magic—it is a programming style built for modularity, and maintainability. As a regular G developer, you probably encounter clusters, libraries, type definitions, property nodes, and polymorphic VIs on a daily basis.

Category: Tags:

So You Want a LabVIEW Interface?

April 4, 2016

(Me too!)

What is an interface?

An interface is the set of methods, messages, or VIs (think connector panes) that we use to pass data in and out of a software module. Simply put, what are the inputs and outputs, and how do they get in and out? A software module could be a class, a library, or simply a repository of VIs (in descending order of author preference).

Why are interfaces useful?

Category: Tags:

Getting Started with the Actor Framework – Part II

September 3, 2015

In the previous installment, we built a very simple program which consisted of a single actor and a single message.  In this part we will create an application that is a bit more complex.  This example consists of two actors: a DAQ actor which can read an analog voltage and a User Interface actor which provides a graphical user interface to display the data.  Let’s get started!

Category: Tags:


Subscribe to RSS - LabVIEW