FORCAST:
A Wide-Field Infrared Camera for SOFIA
Personnel   Science   Instrument     SOFIA     Technical Memos    
Software
Control software runs on a PC connected to FORCAST with fiber optic and RS-485 serial cables, while the user interface runs on a Java-enabled networked platform
Links this page:    
compilers
         
hardware access
         
controlling dewar electronics
user interface
         
DCS ops
    compilers:
| Utility | Compiler system |
|
hardware access/control (device drivers) |
Microsoft NT DDK (C) |
|
data storage, quick look processing, command interpreter |
Microsoft C++ |
| graphical user interface | Borland JBuilder (Java) |
| documentation | Microsoft Word |
|
Component |
Significance |
Implementation |
| PCI interface access | Communication with FORCAST hardware takes place over the PCI bus | The device driver makes NT HAL function calls to obtain PCI BIOS-assigned recource information, retains it within the driver, and makes it available to user-mode code |
| Data acquisition | Digitized array data are brought into the control computer. High volume data. | Upon request for some specified number of data words, a sequence of bus-mastering (DMA) transfers is set up to accept data. Custom PCI adapter card acquires data on the fiber optic link and relays them over the PCI bus |
| DC-level monitor data | Application obtains hardware DC-bias and clock monitor levels for display and recording. Low-volume data. | Polled query-response communication takes place over the fiber-optic/PCI bus path |
| Motor control | Motor indexers control filter wheels, dichroic slide, etc. | User-mode COM port requests are handled by the OS to communicate over RS-485 serial chain |
| Array clocking | Clocking tables are generated with a flexible scheme that gives users complete access to the entire pattern, allowing for asymmetric clocking, even to the level of a single detector element. Tables are file-based and can be cached by the program, ready to upload quickly |
| Detector operations | Operation sequencing includes throw-away frames (during chop settle), non-destructive reading, chop positioning, and coadding details. This is also done with a file-based system designed for flexibility |
| Communications protocol | Communication over fiber is done with a verification scheme that includes a byte-wise checksum comparison. A command/configuration is applied only after verification is acknowledged. |
| Commands | A "little language" provides access to all functionality in a programming environment that includes conditional execution, nestable looping, functions definition, hex/decimal/binary input and output, integer, floating point, arrays, file access, etc. |
| Access to array data |
Memory mapping provides
direct access to acquired detector data
(after it's been saved to disk!) |
| Graphical user interface | The GUI is a Java program that can run on the same machine as the hardware-control program, or on any machine that can establish a network connection with it. Binary information flows back to the GUI on a separate socket allowing the GUI to accurately represent current status |
| GUI demonstrations | A GUI demonstration requires connecting to the hardware-control program, which may be running on the current web site. Only one control-connection is possible at any one time. If it's present and not busy, this demo (NOT IMPLEMENTED) might work |
| Built-in commands | The DCS-SI protocol specification is completely supported |
| Command extensions | The DCS can define macros for its own use that execute any FORCAST command(s) and return to the DCS text-formatted results |
email:
Justin Schoenwald.
Page last updated Oct 2005.