User Tools

Site Tools


jvs:cigal:manual:chapter1:devices

CIGAL Reference Manual, Chapter 1 (Topics): devices

Devices -- Hardware Devices

At present CIGAL recognizes the following periperal devices:

Pointing devices (see CURSOR(4))

  • mouse - Mouse (Microsoft-type if PC) is automatically detected at startup
  • tablet - Summagraphics or ASCII data formats (see TABLET(4))
  • joystick - PC gameport device


Video Display:

PC:

  • 8-bit pseudocolor (256 colors)
  • 16-bit true color (RRRRRGGGGGGBBBBB binary color format)
  • 24-bit true color (0RRGGBBh 3-byte format)
  • 32-bit true color (0RRGGBBh 4-byte format (high byte ignored))

Mac:

  • 8 - bit pseudocolor (256 colors)
  • 16 - bit true color “thousands of colors” (RRRRRGGGGGBBBBB binary color format)


Image acquisition:

  • Matrox MVP-AT
  • Imaging Technologies 151
  • Image Processor:
    • Matrox MVP-AT
    • Imaging Technologies 151


Printer:

  • PC:
    • PRINTER NOT SUPPORTED YET
  • Mac:
    • Text - This is a bit flaky
    • Graphics - This doesn't work


Analog/Digital data acquisition:

  • GW Instruments - MacAdios
  • National Instruments - analog and or digital boards supported by the NIDAQ interface library
  • Electronic Energy Design - ADB 4 channel serial analog device
  • Gameport joystick device - 2-3 analog + 1-4 digital channels per joystick


CIGAL is designed to be essentially machine independent. This is accomplished in three ways. First, all data transfers to and from hardware devices are handled as though they are writing to or reading from standard CIGAL variables. For example, hardware frame buffers, lookup tables, and camera settings work simply as special cases of images, arrays, and number variables for CIGAL users. To modify the hardware you simply change the values in the appropriate variables. This feature means that CIGAL macro programs generally do not need to know anything about the specific hardware available and lets algorithms be moved easily from one system to another.

Second, almost every processing feature within CIGAL is available on all machines regardless of peripheral hardware. This is possible because software routines can emulate most hardware processing capabilities if and when the appropriate hardware is not available. Moreover, for any large computation CIGAL first checks to see if specialized hardware is available and if so it is automatically used; if not, software carries out the calculation. This strategy means that you if you have better hardware, CIGAL will take advantage of it, but if you don't have the hardware you can still do almost everything, it will just be at slower speeds. The one major feature that the software cannot emulate is digitizing images. To digitize images some form of a frame grabber or scanner is required.

The third aspect of CIGAL's machine independence is that all hardware specific functions are concentrated into just a few subroutines and device tables. Adapting the language to a new system therefore merely requires modifying this relatively simple interface to deal with the new hardware.

These changes primarily involve substituting hardware-specific calls for generic functions, such as transferring a block of data or switching from one display mode to another. Since most hardware devices come with a library of such low-level subroutines, moving to a completely new device can be accomplished in just a matter of days, with a little practice. See NEWDEVICE(1) for more information on adding new devices.

See Also:
CIGAL Home, CIGAL Manual, Topics List, Manual Help

jvs/cigal/manual/chapter1/devices.txt · Last modified: 2023/02/23 18:43 (external edit)