Software Architecture#

Handel is a framework of several libraries that interact to create the interface Handel provides.

The Handel layer (handel.dll) contains the xia* routines you will call. These routines are the focus of the Functions section.

Lower layers are for internal use. (Many of these were formerly distributed as separate DLLs but are now statically linked into Handel.dll.)

  • Product Specific Layer (PSL) (saturn_psl, xmap_psl, etc.)

    Product specific acquisition values, run types, run data types, and board operations.

  • XerXes (xerxes)

    Formerly the public API for spectrometer control, now an internal dependency used by the PSL.

  • Device driver layer (saturn, xmap, etc.)

    Device-level communication and utilities.

  • Machine dependent (MD) (md, md_win32, md_linux, etc.)

    Operating system-level utilities. An implementation of the MD routines is needed for each platform Handel runs on. XIA provides full support for Windows (md_win32.c) and minimal support for Linux (md_linux.c). Patches are welcome to flesh out support for Linux or other operating systems.

  • Protocol layer

    System device driver wrappers for the protocols supported by Handel.