Remember…You Get What You Pay For!

G-Wiz Strip 51

I have seen many project opportunities that were “lost” due to the customer choosing the lowest bid without taking into consideration the costs involved to maintain the application or the skill level of the developer. I used quotes on the word “lost” because we often see these types of projects make their way back to DSA in order to fix the problems the original “lowest bid” developer could not solve.

Continue Reading →

Where’s the Beef?

G-Wiz Comic 56

Queued State Machine, Queued Message handler, Master/Slave, Producer Consumer, Channeled State Machine … (the list goes on) are design patterns often used to develop applications in LabVIEW. They each have their own features and no single design pattern is correct for every situation and application. Choosing the appropriate design pattern or creating a customized variation is key to developing a robust application that will meet the requirements and grow as the application grows over the years.

Continue Reading →

Exploiting LabVIEW Libraries

Have you ever viewed a LabVIEW VI Hierarchy and become frustrated with not being able to locate a VI you needed to open?

Do you have large applications composed of similar modules but fear jumping, with both feet, into the learning curve of LVOOP?

Did you ever try to duplicate a sub-VI at the start of a new set of functions and find yourself deep in a nest of cross-linked VIs, or save a VI only to realize that the most suitable name has already been used?

Then using LabVIEW Libraries may be useful to you (see Figure 1)!

Continue Reading →

Action Engines, What are They?

An action engine is my term for a functional global which includes extra actions other than just holding the data. I was originally exposed to the term “Action Engine” by reading the book “LabVIEW Applications Development A Course on Advanced LabVIEW Programming Techniques.*”  But before I get into details of the Action Engine (AE), I would like to clarify some terminology.

Continue Reading →