LabVIEW Development Best Practices Documents

Showing results for 
Search instead for 
Did you mean: 

Introduction to Object Oriented Programming and Hardware Abstraction Layers

Learn how to build scalable, extensible measurement systems using object-oriented programming practices in LabVIEW.  This session aims to make OOP approachable for anyone who is already comfortable with basic LabVIEW programming and highlights common use cases for OOP, including creating a custom hardware abstraction layer. 

This session will explain how OOP can be used to minimize the scope of changes that have to be introduced to an existing system in order to add new functionality and how the use of classes helps define the relationship of data and the methods that act upon that data.

Recorded presentation here:

Topics Covered

  • When should OOP be used
  • How to use a class in a QMH
  • Data encapsulation
  • The mechanics of creating and editing classes
  • The difference between dynamic dispatch and case structures
  • Measurement Strategy Abstraction Layers (MSAL)
  • Hardware Abstraction Layers (HAL)

Demonstration Setup

The attached demo file requires that the Measurement Utility be installed.  Please download and install the latest version of this demonstration from here.

Elijah Kerry
Chief Product Manager, Software Platform
Follow my Software Engineering for LabVIEW Blog
Member mike_nrao

Great presentation!  It serves as a nice gentle intro to OOP for intermediate-level LabVIEW developers.  The logical progression  from showing difficulties with non-OO design through Measurement and Hardware abstration makes a strong case for adopting OO design.  I think OOP can be taught without presumed knowledge of QSM, simple state machines, user events, and variants, but the case for it isn't as persuasive. 

It seems like a large leap to go from OOP basics to full-blown MVC-style Actor Framework application.  Depending on the audience, the AF intro may be better served as a follow-up presentation.  But, on the other hand, it does aid in supporting the case for OO design.

The slide progression seems to imply that Actors can by dynamically loaded from disk in a deployed application (combined ideas from slides 65 through 68).  To my knowledge, this is quite difficult (border-line impossible); am I wrong?

Looks like slide 40 is a duplicate of 68, and probably unintentially copied there.

I would like to see SMoRES notes have their own slide.  (Who coined the term "SMoRES"?)

It would also be nice to springboard from this presentation to more advanced concepts, so an 'Additional resources' slide full of links to related topics would be great.

Knight of NI Knight of NI
Knight of NI

Michael Lacasse wrote:


I would like to see SMoRES notes have their own slide.  (Who coined the term "SMoRES"?)


It was actually Norm's original LabVIEW mentor.  There's a presentation floating around somewhere in the communities where Norm gave him credit.  I worked with the guy as well.  He's no longer doing software.  He's in a head position of process improvement.

There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
Member Fire

Hi folks

I also prepared an Introduction to LVOOP, object-oriented programming with LabVIEW.

It is a hands-on tutorial dealing with configuration data in an object oriented manner. It includes talk and manual in german and english language. It was presented during VIP 2012 and 2013. It is puiblished on github,

Best regards Holger

Active Participant Elijah_K
Active Participant

You can watch a recording of this presentation I recently published here:

Elijah Kerry
Chief Product Manager, Software Platform
Follow my Software Engineering for LabVIEW Blog
Member gregorian7



Has anyone got proper version of download file?. 


Asking as Demo project is missing all methods.





Member LoCa

The same here Smiley Wink