Software Design

Rarely is any new electronic system design complete without some amount of accompanying software. Since many electronic systems contain their own embedded processors performing complex tasks, custom control software and graphical user interfaces are in high demand. Even without embedded processors, external interfaces to other computer systems still require custom driver software and user interfaces for complete system deployment. Software has indeed become an integral part of most electronic system designs. It is also an important component of system design that can not be wisely ignored until after the hardware is completed. Our experience with concurrent system development enables us to provide seamlessly integrated design solutions encompassing a wide variety of software needs.


  • Application Development
    The term "application" generally refers to any self-contained program that performs a specific function directly for the user. The development of seamless applications requires a thorough understanding of both the "function" and the "user" aspects of the system. Whenever custom electronic components are involved, their operation must be considered throughout the application development to achieve the correct functionality and performance. An equally important piece of any application however is the user interface. This can be anything from a few pushbuttons for basic system control to an elaborate GUI which can also perform very complex data translations or other functions. The goal of any application should be to provide a thorough, but concise and easily understood interface between "man" and "machine".
  • Device Driver Design
    Whenever electronic hardware is interfaced with general purpose computers, device drivers may be required. A device driver is generally used for accessing the hardware registers of the plug-in device and often includes an interrupt handler to service interrupts generated by the plug-in device while providing the appropriate API communication with the operating system. Device drivers can form part of the lowest level of the operating system kernel, with which they are linked when the kernel is built. More commonly however, systems such as Windows 95/NT use loadable device drivers which can be installed after the operating system is running. In either case, a thorough understanding of both hardware and operating system is required to provide a smoothly running system.
  • Visual C / C++
    Need we say more? This industry standard, object oriented, software development environment provides the most extensive set of libraries and cross-platform support in the industry.
  • Java
    With Internet usage growing exponentially, the need for robust, secure applications with platform-neutral transportability is becoming prevalent.
  • Visual Basic
    This popular event-driven visual programming system for Microsoft Windows, allows fragments of BASIC code to be invoked when the user performs certain operations on graphical objects on-screen.
  • LabVIEW
    The National Instruments Laboratory Virtual Instrument Engineering Workbench environment was originally developed to provide a graphical user interface to instruments connected by the IEEE 488 (GPIB) bus. It provides powerful graphical editing facilities for defining and interconnecting "virtual instruments" and quickly composing custom hardware/user interface applications.