FORCAST Software

compilers           hardware access           controlling dewar electronics        user interface           DCS ops

Control software runs on a PC connected to FORCAST with fiber optics. The user interface runs on a Java-enabled networked platform.

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

top

Hardware access

Custom adapter cards on the PCI bus provide optic fiber channels to each of the two (nearly identical) hardware modules operating the two infrared detectors.   A private TCP/IP network communicates with FORCAST network-enabled devices including an eight-module motor controller and a multi-port RS232/485 server in the counterweight rack.

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 busmasters 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. ASCII commands are sent to, and status received from the motor controller via TCP/IP

top

Controlling the Dewar Electronics

The FPGA-based electronics package clocks the detectors, sets detector biases, controls chopping outputs, coadds detector data, and is flexible enough to do much more.   Commands are accepted from, and coadded data are returned to, the control computer over optics-fiber links.

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.

top

User Interface

The control program accepts user input only in the form of textual commands on a network socket (TCP) connection.

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

top

DCS Operation

A single TCP socket is provided to the SOFIA Data Cycle System (DCS) allowing complete command and control of FORCAST.

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 text-formatted results
top