LabVIEW Development Best Practices Documents

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW Object Oriented Programming Resource Directory

There are many excellent resources online for Object Oriented Programming in LabVIEW (LVOOP). Below you'll find a directory of commonly referenced articles and presentations arranged according to developer experience level with a brief description of each. For quick access to this Resource Directory use the following URL: bit.ly/lvoop.

National Instruments Instructor Led Courses

  • Object-Oriented Design and Programming in LabVIEW: Object-oriented design encourages cleaner interfaces between sections of code and results in code that is easier to debug and scales better for large programming teams. Object-oriented programming is the development of code in a language that enforces object-oriented design principles. This course covers the fundamental concepts of object-oriented design and programming and then demonstrates how those concepts are implemented in LabVIEW.

Novice-Beginner

Intermediate

  • Applying Common Object-Oriented (OO) Design Patterns to LabVIEW: In the same way LabVIEW has commonly accepted design patterns such as the State Machine and Queued Message Handler, Object Oriented Programming has a rich history of patterns designed to solve numerous problems. This article examines ten such examples based on the principles in Design Patterns. Gamma, Erich, et al. 1995.
  • NI GOOP Development Suite: If you use LabVIEW classes heavily, this add-on toolkit provides some useful menu accelerators (such as an improved "New Class" experience) and various class templates. It also includes the UML Editor, capable of both forward and reverse engineering a LabVIEW class hierarchy for UML diagrams.
  • NI LabVIEW Virtual User Groups: New Features in LabVIEW Object-Oriented Programming: Learn the basics of creating object-oriented applications using LabVIEW and review LabVIEW classes, access, scope and inheritance. Discuss new development techniques and new LabVIEW features that extend the LabVIEW object-oriented programming model.
  • The Actor Framework: A part of LabVIEW since 2012, this framework simplifies the work involved in creating massively parallel operations involving multiple independent actors, whether those actors are user interfaces, hardware elements, or network communications. It is not a panacea but goes a long way toward making such applications testable and verifiable. Please check out the READ THIS FIRST link at the top of the page, which is maintained as the latest and greatest set of resources from the community for extending the framework.
    • Example Code for Learning LVOOP & the Actor Framework: This file does an apples to apples to apples comparison of the same piece of software written with the traditional QMH approach, written with a completely LVOOP approach (Command Pattern, Factory Pattern, Hardware Abstraction), and written with the Actor Framework.

Advanced

  • LabVIEW Object-Oriented Programming: The Decisions Behind the Design: The definitive documentation on the design decisions that shape the  Object Oriented Programming experience in LabVIEW.
  • Measurement Utility (Plugin Hardware Abstraction Layer Using Actor Framework): The Measurement Utility is a framework that dynamically loads measurement definitions and hardware device plugins at run-time. 
  • AQ Character Lineator: Users who need advanced serialization (to/from string) capacities in their LabVIEW classes should check out the Character Lineator. The library supports serialization of the same object to multiple file formats, multiple human cultures, multiple versions (forward and backward mutation), and many other variations. For some applications, this library is exactly what is needed. For others, it is overkill, but it may still serve as a model for how to implement your serialization requirements.
Chris Cilino
Cirrus Logic
LabVIEW Framework Engineer
Certified LabVIEW Architect
Contributors