NUVI is an environment for measurement and control, running as
multiple tasks under DPS.
It works with DPS objects - this means, that learning new data types
or new hardware to operate with
is done automatically (provided the type files are available to
the system). It knows about spectroscopy data types - like spectrum,
peak, list_of_peaks, sample_report, nuclide_library
and several
more general types, like file, text file etc.
The user interface is either through the dialogue box or through
the buttons at one of the "display" tasks. The latter are object specific
and allow using only a subset of the commands, while the dialogue
box gives access to all resources. In the dialogue box, one can either
press the menu buttons at the bottom of the window or type the commands
in; typing has been preserved in order to allow writing
command scripts.
Mouse pointer actions over the represented data are type specific.
The dialogue box interprets the commands and, depending on the command,
either executes it or passes it to one of the visualization or acquisition
tasks as a message; depending on the command again, it waits for status
or user input. If a status (or other) message comes at an
unexpected moment, it will be displayed and held so until some user action.
The following model describes how the resources are interoperated in the
NUVI environment:
[slot]-----[-------------------] [slot]-----[ ] [slot]-----[ acquisition nexus ]----[data buffer]-----[visualization task] [ ] /-----------[-------------------] | | [-------------------] | [slot]-----[ acquisition nexus ]----[data buffer]-----[visualization task] \-------\ /--[-------------------] | [slot]-/ [slot]-----[ acquisition nexus ]----[data buffer]-----[visualization task] \ [slot] \ \ --[visualization task] [data buffer]-----[visualizauion task] [data buffer] [data buffer] [visualization task]A slot contains a DPS object of the "device" type; multiple slots
A data buffer always contains a DPS object, accessed via the "do" and
similar system calls (e.g. a pha-spectrum),
into which acquisition is
done. When starting an acquisition nexus, it takes into account both
the slots connected to it as well as the data type (e.g. dual or single
spectrum).
A visualization task presents the data from the data buffer it is
connected to for human consumption. It is presented "live" - that is,
whenever the acquisition nexus modifies the data, the display is refreshed;
the refresh rate can be limited via the "display rate" command. Multiple
visualizaton tasks can present the same data object (typically used
to view different regions of an object simultaneously).
NUVI version 1.1 allows up to 16 data buffers and up to 16 visualization
tasks; buffers 14 and 15 are reserved for the curve fitting command,
which takes the curve shape to fit from buffer 14 and places the fitting
result into buffer 15.
The program is started by spawning nuvi.com. It then, before beginning
to expect user input, goes through the following steps:
- spawns all display tasks which were spawned upon last exit of NUVI,
- checks the slots and installs all the drivers and object types necessary
according to what has been found in the slots; also, if the slot
configuration has changed, stored slot-nexus connections are deleted,
- searches for the file "begin.bat" and, if found, executes it,
- upon termination (with error or not) of begin.bat, input is switched
back to the stdi at spawn time, and continues in command mode.
The basic spectrum type is "spectrum". A kind of spectrum is
"pha-spectrum", which is the type used to measure nuclear spectra.
For the "pha-spectrum" type, mouse actions over its related display
can result into setting/removing ROIs (also overlapping ROIs are
allowed), dragging/zooming, moving the upper/lower limit (autoranging
is the default state) etc.
A ROI from a spectrum can be extracted into a
"spectrum_peak" type
object. The fit command does this: extracts the peak under cursor,
creating a "spectrum_peak" in buffer 15, and then does the "fit"
action over the peak. The spectrum_peak type is an auto-pop-up object;
that is, whenever changed, the visualization task's window will
automatically come to the front,if covered by others.
For data interchange with other systems, two formats are supported:
ASCII and Nucleus(2).
The "pha-spectrum" type contains:
- energy calibration, polynomial type, default up to 30 points
- acquisition time (in seconds, 32-bits),
- dead time (in % * $ffff),
- starting date,
- list of ROIs,
- spectrum name,
- associated comment file name,
- various peak search related parameters,
- last change moment (internal system time slice, 32-bits),
- count rate (total counts per second) last seen,
- spectrum channel data (32 bits per channel),
- some reserved space
The "spectrum_peak"
type contains (after all actions the fit command
has done over it):
- the channel data from the marked region it was extracted from, with
the background stripped,
- the calculated centroid, FWHM, FWTM ( all both in channel units and
in keV), net area, fit area, fit rate (fit area/acquisition time),
- a scaled copy of the curve that was fitted to the peak data (it sticks
to the displayed channel data so they can be dragged/zoomed together).
[Evaluation Related Types]
*