Most people know UEI for its rugged, reliable, and flexible hardware. Everyday our products are used in countless ways in countless application around (and above) the world. But our hardware/this only tells half the story. As every engineer knows without software even the most capable hardware is essentially idle and inert. That’s why we’ve created a library of software samples. But what are they? Where can you find them? And how do they work?
Excellent questions.
And to provide answers we recently sat down with UEI Application Engineer Greg Armstrong who provided some insight.
Q: Greg, I’ve repeatedly heard about the software samples, but they’re almost never explained. Can you help clear this up? What are they and why does UEI offer them?
A: We try to have one sample to demonstrate the capabilities and functions of each of our 90+ I/O boards. In order to do anything useful with our products, customers have to write their own software. Our library of software samples is intended as a starting place or a template for them to write that code.
Q: What software is covered in the samples?
A: Broadly speaking, there's two categories of samples. We have our low-level C samples. Those are all written in C. And that's one API. Then we have our framework code. That's a different API. And we have samples covering a variety of programming languages. Our framework supports C++, Python, .NET, LabVIEW among others. Customers can find our samples written in each of those languages.
Q: Why C? Why does it have its own kind of category?
A: So, framework is a wrapper around the C libraries. Everything, all the underlying interactions between the user's code and the hardware itself, that's all written in C. You can use different programming languages to do the same thing, but the framework is still calling all the underlying C functions under the hood.
Q: How do customers access the samples?
A: They get the samples when they install our software which comes on a USB drive when you buy one of our products, or you can download it directly from our website. On UEIPAC systems, the samples also arrive precompiled and ready to run on the CPU itself.
Q: How do our customers use the samples?
A: Our samples are typically very short … generally 50 lines to a few hundred lines. And depending on what the customer is doing, the UEI software sample could be just one little module in some giant software package [for the application] they're writing.
Q: Are customers meant to be able to go in and make it their own thing?
A: I can see two possible uses. On one hand, the software sample demonstrates the function calls. [Greg turns to his PC and opens the sample for a UEI DNR-AI-207 analog input board and points to a particular line.] This is the command that pulls data from the chassis and brings it into your application. This sample shows you the “correct way” to use that function. If the customer's application is really simple you could almost use this right out of the box. That typically doesn't happen though. Nobody's application is that simple. But, this is one option.
You can also use this as a functional test because we know these samples work. If you run the sample code and it doesn't work, that means the problem is not due to software. It's something wrong with the board.
Q: Do customers ever reach out to us with problems or issues with our samples?
A: We [the UEI Application Engineering Dept.] don't hear many complaints about the samples themselves. But a big part of what we do when a customer’s application isn’t working is debugging the code they’ve written. And we use the samples as part of our troubleshooting and debugging process.
Q: In your experience do our customers find the library of samples we provide helpful? Is this something they consider an asset?
A: While our documentation is good, customers I’ve talked to consider the sample code a really valuable asset. Think of each sample as a practical demonstration. You can tell somebody how something works, but until they actually see it in action …
That's what the UEI software samples are for our customers.