Jump to content

Worst Hardware Drivers - Name and Shame!


Steve Watts

Recommended Posts

I'm having enormous fun trying to decipher some ARINC drivers. Too cheer me up what's the worse set of "Professional Drivers" you've used and what made them bad?

:headbang:

If you really want an answer, you should probably lead by example. Why not describe your own experience in more details? :question:

Link to comment
If you really want an answer, you should probably lead by example. Why not describe your own experience in more details? :question:

OK,

The drivers I have consist of single calls to a DLL, there are in excess of 40 seperate VI's with little or no descriptive documentation (i.e. how to use type documents). The worst of these has 2 inputs and 20 outputs.

All the examples concentrate on the complex capabilities of the card.

All I want to do is output a 32 bit word to one channel and receive it on another!!!!

I believe that drivers should be designed to simply do the simple things, and gradually get more complex as the tasks get more complex. I've seen some excellent equipment completely undermined by drivers that have been written by someone who has no experience in LabVIEW.

Link to comment
  • 2 months later...
OK,

The drivers I have consist of single calls to a DLL, there are in excess of 40 seperate VI's with little or no descriptive documentation (i.e. how to use type documents). The worst of these has 2 inputs and 20 outputs.

All the examples concentrate on the complex capabilities of the card.

All I want to do is output a 32 bit word to one channel and receive it on another!!!!

I believe that drivers should be designed to simply do the simple things, and gradually get more complex as the tasks get more complex. I've seen some excellent equipment completely undermined by drivers that have been written by someone who has no experience in LabVIEW.

I would hesitate to call them 'worst', since they are functional, but two that I've encountered which illustrate your point are the vendor-supplied drivers for TSI flowmeters, and the Tescom ER3000 series pressure controllers. In both cases, the devices have clearly documented serial interfaces; in both cases, the drivers are thin VI wrappers around DLLs which do all their own serial port management. Along with this method comes the inevitable problem of nonportability, nasty surprises when the com port isn't plain vanilla COM1 thru COM4, etc.

My take-home message is this: there are a great many journeyman C programmers, or design engineers who know a little C, who get told they have to offer LV support because big customer X requests it. So they wrap LV around their homebrew DLL and declare the job done.

In these two cases (and others), I got the serial interface spec, put it in a little binder, and started coding a pure-G replacement. I created typedefs for all the little param lists, etc. I even made up consistent icons with the vendor's logo/colorscheme/typeface, which of course they didn't do.

Best regards,

Dave

Link to comment

David: you got wrapper VIs? Lucky! I worked on an Aerotech stage that came with a "LabVIEW Driver" which consisted of "naked" calls to DLLs strewn about the block diagram. To make matters worse there were many instances of the "home brew sequence structure" (For Loop + Case Structure = Sequence Structure). Sequence Structures are bad enough, but then you have to deal with a custom implementation :headbang:

post-17-1133193270.png?width=400

post-17-1133193278.png?width=400

post-17-1133193377.png?width=400

Link to comment
David: you got wrapper VIs? Lucky! I worked on an Aerotech stage that came with a "LabVIEW Driver" which consisted of "naked" calls to DLLs strewn about the block diagram. To make matters worse there were many instances of the "home brew sequence structure" (For Loop + Case Structure = Sequence Structure). Sequence Structures are bad enough, but then you have to deal with a custom implementation :headbang:

This is the Data ACQ example from IOTech for their Multiscan device. It does analog input and has some Dig IO, alarms, etc. One could see how the example might be complicated to show all the capabilities but believe me it doesn't get any better as you start digging down. I think they wrote it for LV4.0 but they still sell the product new so you think they could update the darn thing :thumbdown:

On a side note how do you guys put in your pics. I'm a little new and still learning the site. I just used SnagIt, a program to capture screen shots and added the attachments but it's a little bulky.

Thanks,

Dan

Link to comment
On a side note how do you guys put in your pics. I'm a little new and still learning the site. I just used SnagIt, a program to capture screen shots and added the attachments but it's a little bulky.

Dan: I also use SnagIt. It looks like you did have some trouble with the screenshots, because they didn't appear in your posting. Take a look at this posting called "How to Insert Images in your Posts, Making a good first impression." This will give step-by-step instructions with illustrations.

Link to comment
  • 2 months later...
Hi,

I wish to know, how easy is it to configure and program the Aerotech motion controllers using labview. I've been using NI, PCI-7344 motion controller. Its very easy to configure using MAX and also easily programmable using the simple to understand VIs provided by NI. What do you suggest about aerotech? Also, do the LabVIEW VIs for Aerotech come with the package or should I have to purchase it seperately. How abt. the cost of the controller?

Regards,

Giridhar Rajan

Automation Engineer,Design

Cruiser Controls

Giridhar: I guess that this is a good time to give an update on Aerotech. I have been using one of their stages recently, and the LabVIEW drivers and examples have been greatly improved. They still don't meet my very rigorous requirements for what I would call good software, but their stuff is useable. I did have to fix a few bugs in their code, but that is often the case with instrument drivers. As far as cost is concerned, you should talk to an Aerotech sales rep or visit their website. It is my assumption, but I could be wrong, that the LabVIEW drivers do not cost extra.

Link to comment
Hi Jim,

Thanks for the information. :thumbup: I want to know if the Aerotech controller device appears in max (I doubt :D ). If not, then do they have a configuration software similar to max.

The MAX API is private and undocumented. Nobody outside of NI can write drivers that integrate with MAX directly (aside from the standard OS drivers such as COMM for serial ports) that integrate in MAX. I doubt that there are many manufactuerers that have such an integrated and feature rich configuration interface for thier hardware as what you get with MAX.

Rolf Kalbermatter

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.