The problem with many test systems is that the overall system must be in operation longer than the individual system components are supported. Sometimes the device being tested has an active service life measured in decades, while many test instruments are obsolete and no longer supported after five years or less. Other times, the device being tested has an active service life measured in months. Both of these are examples of life-cycle mismatch.
A life-cycle mismatch creates a need to upgrade obsolete instruments without changing test applications, test fixtures, and devices under test (DUTs) or a need to modify the test application software without changing any of the hardware or hardware-specific software. Updating test systems requires new test software development, revalidation, and redocumentation that are costly, resource-intensive, and time-consuming. To minimize the time and costs associated with migrating or upgrading test systems, you can use hardware abstraction layers (HALs) in test systems to separate the test application from the instrument hardware. This paper covers HAL architecture, best practices, features, and benefits as well as outlines examples of LabVIEW and C-based implementations.
Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.