We've been developing sophisticated, easy to use Windows software to control hardware for over a decade. In fact, our customers often use us as their main software development department.
Usually, the hardware contains a microprocessor or microcontroller of some sort, to handle the low-level hardware functions all the time, even if the PC has been disconnected or the PC side control program is not running. The microprocessor communicates with the PC over some interface like USB, ethernet, or RS-232 serial ports on older systems.
The PC program sends commands and data to the micro in the hardware, and receives acknowledgements and status and data reports back.
Our Windows software is fast, great looking, and reliable. We've got the experience to do it rapidly and economically for you (at half the cost of most other developers), and get it working right the first time.
A True Story
A company that makes soldering and unsoldering equipment was developing a computer controlled machine that can safely remove and replace large surface mount integrated circuits on dense printed circuit boards.
This is a big problem these days. Integrated circuits have gotten so complex that they often have over a hundred connections. Usually these devices are surface mount, so even if you can get at all the connections, they are closely spaced around all sides of the device. Some of the parts are called Ball Grid Arrays (BGAs), whose contacts are not even accessable from the top: they consist of a rectangular array of little solder bumps on the bottom side of the package.
Manufacturers have developed ways of installing such chips, but what happens if the board doesn't work when it is assembled? In that situation, one of those chips will have to be removed, and doing that can be a problem.
Ball Grid Array IC
(photo courtesy of Pace Inc.)
There is no way that you can remove big surface mount devices like these by unsoldering one pin at a time, even if you can acess all the connections. (With BGAs, you can't even reach those solder bumps: they are on the bottom of the chip.) The only way you can safely remove such chips without damaging the PC board is to gently heat up the chip and board, getting all the solder joints melted at the same time, so you can lift the chip off the board. Then, you have to reverse the process to solder a replacement chip on the board.
(photo courtesy of Pace Inc.)
The machine that the company was developing contains a movable heater head that comes down over the chip, and blows hot air over the chip in a carefully designed, 4-zone temperature controlled process, to melt all the solder connections at the same time for just that one chip on the board. The machine also has a retractable optical system, with a TV camera and a partially silvered mirror, so the operator can align the connections on the replacement chip to the pads on the PC board.
(photo courtesy of Pace Inc.)
All this stuff (the heaters, blower, optical system, and TV display) had to be controllable from, and displayed on, a Windows PC.
The company had hired a team of programmers to do this. Unfortunately, it turned out that this team's prior experience had mostly been in the design of web sites and accounting software, not the real time control of complex technical machinery.
As a result, the development went very slowly (over more than a year), and the software had lots of bugs. When the company reported bugs, they found that each new attempt to fix existing bugs would produce a bunch of exciting new bugs.
The company eventually decided to contact Trace Systems, Inc. for an estimate. We were able to provide them, in just a few months, with software that runs faster, works better, and is easier to maintain and extend. Trace Systems Inc. is proud that we have continued to work with that client, on many new projects, for a number of years now.
Moral:
Don't make the mistake of hiring a software team whose main experience has been developing accounting systems or business database software, to try develop complex software to control your hardware device.