RAD Tools Enable Custom Driver Development

Driver development on the Windows NT platform has never been for the faint of heart. It usually involves a lot of low-level C/C++ code and the Microsoft Driver Development Kit (DDK), which includes an 800+ page manual. But not all developers are conversant with C/C++ or the DDK. As a result, several companies have released products for rapid application driver development.

One such product is Driver:Agent from Vireo Systems (Concord, Mass., www.vireo.com). Driver:Agent is an application tool for developers who want direct access to hardware in a rapid application development environment without having to spend time building the device driver. Vireo also provides VtoolsD and Driver:Wizard for C/C++ driver development only.

BlueWater Systems (Edmonds, Wash., www.bluewatersystems.com) also provides rapid application driver development tools, including WinRTVB, and WinRT. WinRTVB integrates into the 32-bit Visual Basic environment as an ActiveX control. WinDK and the WinDK DDK Driver Wizard are BlueWater's answer to driver development in C/C++.

"When you say rapid application, what you are really getting at is that it raises the level of abstraction so the engineer does not have to think in terms of signals, lines and assembly code but can think in terms of function," says Paul Zorfass, an analyst for International Data Corp. (Framingham, Mass.).

These products make driver development possible for the Delphi and Visual Basic developer, thereby giving RAD programmers the ability to interact directly with their hardware devices. "What we are trying to do is make it really quick and easy to get hardware access," Steve Lewin-Berlin, president of Vireo Systems, explains. Driver:Agent can be used as a complete solution for doing data acquisition or for building an interface to a serial or parallel device, for example. In other cases, Lewin-Berlin says, "people use Driver:Agent to do testing during the bringing up of new hardware or as an adjunct to writing a complete device driver where they might not want to bloat that driver with code for doing diagnostic or test routines."

These RAD driver tools support a wide variety of hardware, including serial, parallel, ISA, PCI and USB. With this range of support and speed of design, custom applications are now possible for Visual Basic and Delphi programmers. "We do seminars where we show how we can take our tools, build a driver for a USB device, then we plug the device in right there, and you can see the driver come up and can debug through it and control it," Paul Lever, president of BlueWater Systems, explains.

What seems to be driving RAD driver development is the recent success of Windows NT in previously uncharted markets. "The amount of people that are using NT in data acquisition and industrial control is unbelievable," says Lever. The ability to quickly develop software that can interface directly with a wide variety of specialized hardware is opening these new markets.

For example, Lever explains, Key Technology Inc. (Walla Walla, Wash.) is using BlueWater's tools to control custom hardware designed for fruit and vegetable inspection. By employing cameras and high-powered air jets, they can inspect fruit for defects and sort it on-the-fly. It is just this sort of specialized application that is bringing RAD development to a new level.

"I can see driver development being a real big issue. If I have some machine tool that has been on the market for 15 years but now I'm changing platforms ... I may have a lot of driver issues that I may be worried about," says IDC's Zorfass.

Nevertheless, questions remain as to the safety of rapid application driver development. Should RAD developers have access to something that is traditionally the realm of C/C++ and the Microsoft DDK? By providing a protected environment and questioning the user about specific hardware, these tools attempt to supply the safety needed. Vireo Systems' Lewin-Berlin explains: "Rather than giving an application direct access to modify any hardware address in the system, we ask the user to define their hardware, and then we only provide access to the ports or I/O ranges that are specific to that piece of hardware."

Says IDC's Zorfass: "Even the engineers that are working at the lower level might not be getting it right. If I have a tool or a set of tools out there that have spent more man-years together on solving the problem, they can provide the engineer with another validated and confirmed solution that will enhance the engineer's skills."

Vireo Systems' Driver:Agent, VtoolsD and Driver:Wizard are available from the Vireo Systems Web site. Driver:Wizard is a free download. BlueWater Systems' WinRTVB, WinRT, WinDK and WinDK Wizard are available from the BlueWater Systems Web site. WinDK Wizard is a free download.