# Anleitung zum Messprogramm IIM #
**********************************

*(Messung von Ion-Ion-Orts-Matrizen)*

     29.Apr.1992 K. Huber, Strahlenzentrum Univ. Giessen
     Version 30.Jul.2004

1 Ueber diese Anleitung
***********************

Diese Anleitung zum IIM-Messprogramm steht in verschiedenen Formaten
zur Verfuegung. Die entsprechenden Files finden Sie auf dem Servix
unter /usr/exp/ex_help oder auf Ihrem Experiment-Account unter
$HOME/ex_home/ex_help:

     iim.txt     Text-Format, kann z.B. mit `a2ps' in handlichem Format
                 gedruckt werden.
     iim.dvi     DVI-Format, kann z.B. mit `dvips' auf einem
                 Postscript-Drucker gedruckt werden oder mit `xdvi' auf
                 einem X-Windows Bildschirm dargestellt werden.
     iim.html    HTML-Format, kann mit jedem HTML-Browser (z.B.
                 `netscape') gelesen werden.
     iim.info    INFO-Format, kann mit dem `GNU-Info-Browser' (`info -f
                 iim.info') und `GNU-emacs' gelesen werden.  So wird der
                 Info-Browser bedient (Start mit Tastenfolge TAB, ENTER):
                 info.  (Zurueck mit L, L, ...).
     iim.pdf     PDF-Format, mit dem `Acrobat-Reader' zu lesen.

2 Funktion von IIM
******************

2.1 Ueberblick
==============

Fuer das Ion-Ion-Experiment existieren folgende
Datenerfassungsprogramme:
[(...) = noch nicht auf VME-System portiert]
       (IBP  Ion-Beam-Profile - neuer Strahl-Analysierer (Timo-mat))
        IIF  Ion-Ion Formfactor - alter Strahl-Analysierer
        IIC  Ion-Ion Coincidence
        IIP  Ion-Ion Pulsed Beam
        LIC  Ion-Ion Coincidence List Mode
       (LIP  Ion-Ion Pulsed Beam List Mode)
        IIM  Ion-Ion Position-Matrix

Sowie die Auswerteprogramme:
        IAC  fuer IIC-Spektren
        IAP  fuer IIP-Spektren
        LAC  fuer LIC-List-Mode-Daten
       (LAP  fuer LIP-List-Mode-Daten)

Das IIM-Messprogramm stellt eine Ergaenzung zu den
LIC/LIP-Messprogrammen dar.  Es erlaubt eine erheblich schnellere
Erfassung der Channelplate-Ereignisse zu einer 256*256 Ortsmatrix bei
gleichzeitiger Integration des schnellen Strahls.

Die Hard- und Software Voraussetzungen sind:
   * VME Experiment-Rechner-System

   * Data-Routing-Einheit

   * Control-Routing-Einheit

   * VT240/330 Terminal oder PC mit TeraTerm

   * VxWorks Betriebssystem

   * Netzwerkanschluss zu einem Host-Rechner

Die maximale Datenrate ist abhaengig von der verwendeten CPU:
     MVME162        ?kHz
     MVME172        ?kHz

2.2 Ablauf der Messung
======================

Auf der Frontplatte der LIC- bzw. LII2-Karte ist durch Schalterstellung
IIM die Uebertragung der Zeitinformation zu unterdruecken (s.h. LIC
bzw. LIP).

2.3 IIM Geraeteeinstellungen
============================

(fehlt!)

2.4 IIM Control-Routing Belegung
================================

Das Control-Routing wird vom IIM-Programm nicht angesteuert.

2.5 IIM Data-Routing Belegung
=============================

Das IIM-Programm erwartet die gleiche Reihenfolge der Interfaces im
Routing-Ueberrahmen wie das LIC- bzw. LIP-Programm.

2.6 Messdatenformat
===================

*Struktur der IIM-Daten-Files*
Die IIM-Messdaten-Files entsprechen dem Strahlenzentrumsstandard und
koennen deshalb mit einer Anzahl vorhandener Programme
weiterverarbeitet werden.  Sie beginnen mit einem Header von 512 Bytes
Laenge, der am Anfang einen standardisierten Teil enthaelt und
anschliessend noch eine Reihe weiterer Daten (z.B. Lifetime-,
Realtime-Zaehler usw.), zu denen man ueber die Include-Files
~/ex_home/ex_src/.../iim.conf und iim.h Zugang hat.

   Das Format der Matrix ist auf 256 * 256 = 65536 Kanaele festgelegt.
Die Kanaele sind als INTEGER*4 (BYTES = 4) deklariert, d.h. jeder Kanal
kann ca. 4*10^9 Ereignisse aufnehmen.

     ---
      |
      | Header, 512 Bytes
      |
     ---
      |
      | Spektrum, (65536 Kanaele * 4) Bytes
      |
     ---

   *Struktur der Header Daten:*
     #define lIDHDR 8
     #define lHDLEN 1
     #define lEXPMNT 6
     #define lIDPRG 8
     #define lSTDAT 9
     #define lSTTIM 8
     #define lSPDAT 9
     #define lSPTIM 8
     #define lSPENAM 8
     #define lSPTYPE 4
     #define lROWS 6
     #define lCOLS 6
     #define lBYTES 1
     #define lHDFREE 4
     #define lRESRV 38
     #define lLTXT 4
     #define lTEXT 80
     Plattformabhaengige Definitionen:
     UINT2: 2 Bytes "unsigned int"
     UINT4: 4 Bytes "unsigned int"

     typedef union {
         struct {
             struct {
                 char idhdr[lIDHDR];   /* Identification of header: "STRZ-VXW" */
                 char hdlen[lHDLEN];   /* Length of header: "1" */
                 char expmnt[lEXPMNT]; /* Experiment */
                 char idprg[lIDPRG];   /* ID of generating Program: "IIM " */
                 char stdat[lSTDAT];   /* Date of start */
                 char sttim[lSTTIM];   /* Time of start */
                 char spdat[lSPDAT];   /* Date of stop */
                 char sptim[lSPTIM];   /* Time of stop */
                 char spenam[lSPENAM]; /* Name of spectrum */
                 char sptype[lSPTYPE]; /* Type of spectrum: "MCA2" */
                 char rows[lROWS];     /* Number of rows: "   256" */
                 char cols[lCOLS];     /* Channels/row: "   256" */
                 char bytes[lBYTES];   /* Bytes/channel: "4" */
                 char hdfree[lHDFREE]; /* First free byte in header (0,...) */
                 char resrv[lRESRV];   /* Reserved */
                 char ltxt[lLTXT];     /* Length of text: "80" */
                 char text[lTEXT];     /* Text */
             } stddat;   /* Standard data of header */
             struct {
                 UINT2 status;         /* Status of spectrum */
                 UINT2 xlen;           /* Length of X axis */
                 UINT2 ylen;	          /* Length of Y axis */
                 UINT4 clkcnt;         /* Realtime from Routing */
                 UINT4 rltcnt;         /* Realtime from CPU */
                 UINT4 lftcnt;         /* Lifetime */
                 UINT4 datcnt;         /* Processed data */
                 UINT4 pilcnt;         /* Pile up losses */
                 UINT4 rejcnt;         /* Rejected data */
                 UINT4 fulcnt;         /* Fifo full counter */
                 UINT4 errcnt;         /* Data error counter */
                 UINT2 hdatid;         /* Data identification */
                 UINT4 ifast;          /* Integrated current fast beam */
                 UINT4 runtim;         /* Realtime to run experiment [s] */
                 REAL4 expar[8];       /* Extended IIC parameters */
                                       /* Fast/slow beam */
                                       /* 0/4 Acc. voltage */
                                       /* 1/5 Ion mass */
                                       /* 2/6 Ion charge */
                                       /* 3/7 Meass. range of current */
             } spcdat;   /* Special data of header */
         } hdata;        /* Header data */
         struct {
             char h512[512];         /* Fill 512 bytes block */
         } htotal;        /* Total header */
     } HEADER;

3 Bedienung von IIM
*******************

Das Programm ist weitgehend selbsterklaerend. Die notwendigen Eingaben
werden in Dialogform angefordert. Der Dialog ist in einer
Hierarchiestruktur aufgebaut, wobei mittels Menuelisten von einer
Dialogebene in die andere gewechselt werden kann. Fuer
Parametereingaben existieren im Allgemeinen Vorbelegungswerte, die
editiert werden koennen.

        --- IIM Top-Menue ---

        --- IIM Start-Menue ---

        --- IIM Parameter-Eingabe ---

        --- IIM Funktionen bei laufendem Experiment ---

        --- IIM Konfigurations-Menue ---

3.1 IIM Top-Menue
=================

3.1.1 Exit IIM
--------------

Verlassen des Programmes.

3.1.2 Start experiment
----------------------

Fuehrt zum IIM Start-Menue.  (see IIM Start-Menue.)

3.1.3 Show header
-----------------

Zeigt die wichtigsten Daten des Headers, der jedem Spektrum beigefuegt
ist:

   * *Experiment; Program; Spectrum*
     Name des Experimentes; Name des Programmes; Name des Spektrums.

   * *Title*
     Titelzeile zur Beschreibung des Experimentes.

   * *Start; Stop*
     Startzeit und -datum; Stopzeit und -datum.

   * *Length*
     Format der Matrix.

   * *Timer*
     Restzeit des Timers fuer die Messzeitvorgabe.

   * *Realtime*
     Die Zeit in Sekunden, waehrend der das Experiment gestartet war
     (Realtime). Diese Zeit wird aus dem Sekundentakt der Taktkarte
     abgeleitet (s.o.). Bei Stop durch Messzeitvorwahl ist sie exakt,
     bei manuellem Stop kann sie bis zu 0.1s zu klein sein.

   * *Lifetime*
     Die um die Totzeit korrigierte Zeit (Realtime - Deadtime), die der
     Messung zur Datenaufnahme zur Verfuegung stand.

   * *Processed data*
     Anzahl der verarbeiteten Position-Computer Daten.

   * *Rejected data*
     Anzahl der Daten, die auf Grund ihrer Datenkennung ausgesondert
     wurden, weil sie mit dem Experiment in keinem Zusammenhang stehen.
     Entweder wurde beim Start die Datenkennung falsch angegeben, oder
     es ist eine zusaetzliche Datenquelle unbeabsichtigt mitgelaufen.

   * *Fifo overflows*
     Anzahl der Faelle, in denen die Bearbeitung der Daten nicht
     schritthalten konnte und Datenverluste auftraten.

   * *Data errors*
     Anzahl der Daten, die durch Hardwarefehler oder -stoerungen
     verstuemmelt uebertragen wurden.

   * *Fast beam integration*
     Integration des schnellen Strahls

   * Auflistung der experimentbeschreibenden Parameter.

   Die Darstellung des Headers kann mit der Leertaste wiederholt und
mit der Return-Taste beendet werden.  Fuer ein nicht existierendes
Spektrum (Status new) erfolgt eine gekuerzte Ausgabe.

3.1.4 Analyse spectrum
----------------------

Startet als Subtask ein Auswerteprogramm zur graphischen Darstellung und
Auswertung des aktuellen Spektrums. Eine gestartete Messung laeuft
waehrend der Auswertung weiter. Nach Verlassen des Auswerteprogramms
wird in das Messprogramm zurueckgekehrt. Ueblicherweise kann das
Startup-Verhalten der Auswerteprogramme konfiguriert werden (^Z -> Set
configuration -> Startup mode).

   IIM verwendet standardmaessig das Programm PEAK als Auswerteprogramm.
Unter "Set Configuration" kann ein anderes Auswerteprogramm
konfiguriert werden.

3.1.5 Delete spectrum
---------------------

Ein existierendes Spektrum wird geloescht (im Arbeitsspeicher und auf
dem Host-Rechner), die Daten sind verloren.

3.1.6 Convert spectrum to ASCII
-------------------------------

Das Spektrum wird mit oder ohne Header und mit oder ohne Kanalnummern in
ASCII Form auf einen File geschrieben.

3.1.7 Edit header of spectrum
-----------------------------

Falls die Eingabe der Header-Daten fehlerhaft war, besteht hier die
Moeglichkeit zur Korrektur. Jedoch nur fuer die
experimentbeschreibenden und nicht fuer die messungsrelevanten (z.B.
Spektrumslaenge) Header-Daten.

3.1.8 Execute shell command
---------------------------

Einige der VxWorks-Shell-Kommandos (cd, ls, pwd, whoami) koennen
ausgefuehrt werden.

3.1.9 Set configuration
-----------------------

Fuehrt zum IIM Konfigurations-Menue.    (see IIM Konfigurations-Menue.)

3.1.10 Help
-----------

Bringt diese Anleitung ueber das menueorientierte GNU-INFO-Programm auf
den Bildschirm.  INFO laeuft dabei auf einem Server (z.Z. Servix).

3.2 IIM Start-Menue
===================

3.2.1 Return
------------

Rueckkehr zum Top-Menue.

3.2.2 Create new spectrum
-------------------------

Start der Messung, falls noch kein Spektrum des angegebenen Namens
existiert (Status new). Das Spektrum wird auf der Platte des
Host-Rechners angelegt, ist zunaechst jedoch noch leer. Fuer ein
bereits existierendes Spektrum erfolgt eine Fehlermeldung (Status old).

   Fuer den Start einer Messung muessen die zugehoerigen Parameter
eingegeben werden.
(see Experiment-Parameter-Eingabe.)
(see Funktionen bei laufendem Experiment.)

3.2.3 Continue old spectrum
---------------------------

Start der Messung, falls sie mit einem bereits existierenden Spektrum
(Status old) fortgesetzt werden soll. Das Spektrum wird vom Host-Rechner
geladen, falls es noch nicht da ist. Fuer ein noch nicht existierendes
Spektrum erfolgt eine Fehlermeldung (Status new).

   Fuer den Restart der Messung kann nur ein Teil der zugehoerigen
Parameter geaendert werden.
(see Experiment-Parameter-Eingabe.)
(see Funktionen bei laufendem Experiment.)

3.2.4 Test run
--------------

Start der Messung, falls noch kein Spektrum des angegebenen Namens
existiert (Status new), ohne jedoch auf dem Host-Rechner einen File
anzulegen. Beim Stop der Messung wird angefragt, ob die Messdaten noch
gerettet werden sollen.  Auch waehrend der Messung koennen die Daten
mit 'Save spectrum' zum Host-Rechner gerettet werden.

   Die Messdaten koennen waehrend des TEST RUNs im Speicher (nicht auf
der Platte) geloescht werden mittels einer Funktion im Display-Programm
(Analyse spectrum).

   Fuer den Start der Messung muessen die zugehoerigen Parameter
eingegeben werden.
(see Experiment-Parameter-Eingabe.)
(see Funktionen bei laufendem Experiment.)

3.2.5 Print hardware info
-------------------------

Druckt wahlweise den Hardware-Status oder Status und Daten, so wie sie
vom Experiment uebertragen werden, direkt auf dem Bildschirm aus.
Diese Funktion dient Diagnosezwecken (z.B. Ermittelung der
Datenkennung).

3.3 Experiment-Parameter-Eingabe
================================

Fuer den Start einer Messung muessen die zugehoerigen Parameter
eingegeben werden. Einige der Parameterangaben sind notwendig fuer die
Durchfuehrung der Messung, andere haben nur beschreibende Funktion.
Fuer den Restart der Messung kann nur ein Teil der zugehoerigen
Parameter geaendert werden.

*Title*
Zur Beschreibung der Messung kann eine Titelzeile eingegeben werden.

*Timer*
Eingabe einer Messzeitvorwahl in Sekunden Echtzeit. Bei Angabe von 0
oder eines negativen Wertes erfolgt kein automatischer Stop. Bei einem
Neustart eines Spektrums ist der Vorbelegungswert immer 0, waehrend bei
einem Restart die eventuell noch vorhandene Restzeit als Vorbelegung
angeboten wird.  Die Messung wird nach Ablauf der angegebenen Zeit
angehalten mit der Meldung 'Experiment finished'. Sie muss
anschliessend mit 'Stop Experiment' noch gestoppt werden.

*Experimentparameter*
Zur Beschreibung des Experimentes koennen noch eine Reihe weiterer
Parameter eingegeben werden, die fuer die Auswertung benoetigt werden,
nicht jedoch fuer den eigentlichen Messvorgang.

3.4 Funktionen bei laufendem Experiment
=======================================

3.4.1 Stop experiment
---------------------

Die Messung wird gestoppt und die Daten werden zum Host-Rechner
uebertragen (see Archivierung der Daten.).  Im Modus "Test Run"
wird allerdings zuerst abgefragt, ob die Daten gerettet werden sollen,
Default ist "no".

   Treten bei der Datenuebertragung Probleme auf, so erfolgt eine
Fehlermeldung.  Die Daten bleiben erhalten und der Stop kann wiederholt
werden.

3.4.2 Save spectrum
-------------------

Waehrend der laufenden Messung kann das Spektrum zum Host-Rechner
gerettet werden. Auf einem Unix-Host wird dabei ein bereits
existierendes Spektrum gleichen Namens ueberschrieben. Ebenso wird ein
auf diese Weise gerettetes Spektrum am Ende bei einem "Stop experiment"
wieder ueberschrieben (nicht im Modus "Test Run"). Soll es erhalten
bleiben, so muss es zuvor umbenannt werden.

3.4.3 Show header
-----------------

Zeigt die wichtigsten Daten des Headers, der jedem Spektrum beigefuegt
ist:

   * *Experiment; Program; Spectrum*
     Name des Experimentes; Name des Programmes; Name des Spektrums.

   * *Title*
     Titelzeile zur Beschreibung des Experimentes.

   * *Start; Stop*
     Startzeit und -datum; Stopzeit und -datum.

   * *Length*
     Format der Matrix.

   * *Timer*
     Restzeit des Timers fuer die Messzeitvorgabe.

   * *Realtime*
     Die Zeit in Sekunden, waehrend der das Experiment gestartet war
     (Realtime). Diese Zeit wird aus dem Sekundentakt der Taktkarte
     abgeleitet (s.o.). Bei Stop durch Messzeitvorwahl ist sie exakt,
     bei manuellem Stop kann sie bis zu 0.1s zu klein sein.

   * *Lifetime*
     Die um die Totzeit korrigierte Zeit (Realtime - Deadtime), die der
     Messung zur Datenaufnahme zur Verfuegung stand.

   * *Processed data*
     Anzahl der verarbeiteten Position-Computer Daten.

   * *Rejected data*
     Anzahl der Daten, die auf Grund ihrer Datenkennung ausgesondert
     wurden, weil sie mit dem Experiment in keinem Zusammenhang stehen.
     Entweder wurde beim Start die Datenkennung falsch angegeben, oder
     es ist eine zusaetzliche Datenquelle unbeabsichtigt mitgelaufen.

   * *Fifo overflows*
     Anzahl der Faelle, in denen die Bearbeitung der Daten nicht
     schritthalten konnte und Datenverluste auftraten.

   * *Data errors*
     Anzahl der Daten, die durch Hardwarefehler oder -stoerungen
     verstuemmelt uebertragen wurden.

   * *Fast beam integration*
     Integration des schnellen Strahls

   * Auflistung der experimentbeschreibenden Parameter.

   Die Darstellung des Headers kann mit der Leertaste wiederholt und
mit der   Return-Taste beendet werden.    Fuer ein nicht existierendes
Spektrum (Status new) erfolgt eine gekuerzte   Ausgabe.

3.4.4 Analyse spectrum
----------------------

Startet als Subtask ein Auswerteprogramm zur graphischen Darstellung und
 Auswertung des aktuellen Spektrums. Eine gestartete Messung laeuft
waehrend   der Auswertung weiter. Nach Verlassen des Auswerteprogramms
wird in das   Messprogramm zurueckgekehrt. Ueblicherweise kann das
Startup-Verhalten   der Auswerteprogramme konfiguriert werden (^Z ->
Set configuration   -> Startup mode).

   IIM verwendet standardmaessig das Programm PEAK als Auswerteprogramm.
 Unter "Set Configuration" kann ein anderes Auswerteprogramm
konfiguriert werden.

3.4.5 Detach IIM
----------------

Hiermit kann das Messprogramm verlassen werden, ohne dass die Messung
unterbrochen wird. Die Kontrolle ueber das Messprogramm gewinnt man
zurueck durch einen erneuten Start.

   *Achtung:* es existiert zur Zeit keine Sicherung gegen ein weiteres
Starten eines anderen Messprogrammes, das die laufende Messung stoeren
koennte!

3.5 IIM Konfigurations-Menue
============================

Unter diesem Konfigurations-Menue erfolgen alle notwendigen Anpassungen
des Programmes. Beim allerersten Start des Messprogrammes wird dieser
Menuepunkt stets automatisch aufgerufen. Danach sollte er nur noch bei
Konfigurationsaenderungen benutzt werden.

3.5.1 Return
------------

Rueckkehr zum Top-Menue.

3.5.2 General parameters
------------------------

*Name of experiment*
Dieser Name wird im Header des Spektrums als Experimentname eingetragen.

*Print verbose messages*
Bei Angabe einer "1" werden ausfuehrlichere Meldungen ausgegeben.

*Delay messages*
Gelegentlich wird eine vorausgehende von einer nachfolgenden Meldung so
rasch ueberschrieben, dass sie nicht gelesen weren kann. Hier kann fuer
Meldungen eine Mindestverweilzeit (in Sek.) auf dem Bildschirm
angegeben werden. Dies verzoegert natuerlich die Bedienung des
Programmes und sollte deshalb nur fuer Testzwecke eingeschaltet werden.

*Check task stack*
Unter VxWorks wird der Stack einer Task aus Zeitgruenden nicht auf
Ueberlauf geprueft. Ein Ueberlauf fuehrt in der Regel jedoch zur
Zerstoerung der Task und auch des Systems. Eine "1" fuehrt beim Stop
der Task zu einer Pruefung des Stack. Im Allgemeinen nur bei Problemen
notwendig.

3.5.3 Background program
------------------------

Unter dem Menuepunkt "Analyse spectrum" wird ein Auswerteprogramm
gestartet, das an dieser Stelle spezifiziert werden muss. Im folgenden
Beispiel wird davon ausgegangen, dass das Messprogram MCA das
Auswerteprogramm PEAK verwendet:

*File:   /usr/exp/ex_prog/peakv.o*
Dies ist der Pfad zum Auswerteprogramm PEAK. Unter
~/ex_home/ex_prog/peakv.o findet man es ebenso.

*Symbol: _peak*
Dies ist das Symbol unter dem PEAK unter VxWorks registriert ist. Es
ist in der Regel der Programmname mit einem Unterstrich davor.

*Task:   tMcaBg*
Dies ist ein frei waehlbarer Task-Name fuer das Auswerteprogramm, der
sich jedoch von allen bereits vorhandenen Task-Namen unterscheiden muss.

*Argmts: ,,"peak_mca.vxw",,'S'*
Dies sind die Argumente, die dem Auswerteprogramm mitgegeben werden
koennen. Bei den Standardauswerteprogrammen (PEAK, WQA, IAC, IAP, LAC
usw.)  haben sie folgende Funktion:
   * Im ersten Argument kann ein Programmname angegeben werden, mit dem
     das Auswerteprogramm sich meldet.

   * Im zweiten Argument kann eine Titelzeile fuer das Auswerteprogramm
     angegeben werden, die direkt nach dem Start ausgegeben wird.

   * Im dritten Argument kann ein File-Name fuer den Parameter-File des
     Auswerteprogrammes angegeben werden, in dem dieses sich alle
     wesentlichen Daten aufhebt, um sie bei einem Restart wieder
     verwenden zu koennen.  Fuer verschiedene Auswerteprogramme muessen
     diese Namen unbedingt verschieden sein. Fuer das gleiche
     Auswerteprogramm bei verschiedenen Messprogrammen koennen sie
     gleich sein. Um Probleme zu vermeiden, sollte in dem Namen sowohl
     Mess- als auch Auswerteprogramm erkenntlich sein.

   * Im vierten Argument kann ein Pfadname zu einem alternativen
     Help-File angegeben werden.

   * Im fuenften Argument kann der Modus, in dem das Auswerteprogramm
     gestartet wird, angegeben werden:
         S   Einzelspektrums-Darstellung.
         M   Matrix-Darstellung (Hidden Lines).
         C   Matrix-Darstellung (Contour Plot).
         I   Peak-Integration, Wirkungsquerschnitts-Berechn. usw.
         X   S oder M wird passend ausgewaehlt.

*Task priority: 100*
Prioritaet unter der die Auswertung laeuft. 100 ist ein guter Wert!

*Task options: 0x00000008*
0x00000008 bedeutet, dass die Task den Floating-Point-Prozessor benutzt.

*Task stack:   5000*
Unter VxWorks wird das Stack einer Task aus Zeitgruenden nicht dynamisch
verwaltet, sondern beim Start fest zugeteilt. Es muss ausreichend gross
gewaehlt werden, da es waehrend der Laufzeit nicht ueberwacht wird und
ein Ueberlauf zur Zerstoerung von Task und System fuehrt.  Fuer die
Standardauswerteprogramme ist 5000 ausreichend, ansonsten sollte man
eher einen Werte von 20000 nehmen.

*Unload:       1*
Eine "1" bedeutet, dass das Auswerteprogramm nach der Rueckkehr ins
Messprogramm wieder aus dem Speicher geloescht wird. Dies sollte die
Regel sein.

*Stack check:  0*
Unter VxWorks wird das Stack einer Task aus Zeitgruenden nicht auf
Ueberlauf geprueft. Ein Ueberlauf fuehrt in der Regel jedoch zur
Zerstoerung der Task und auch des Systems. Eine "1" fuehrt beim Stop
der Task zu einer Pruefung des Stack. Im Allgemeinen nur bei Problemen
notwendig.

3.5.4 Data Routing hardware
---------------------------

Falls das Data-Routing im Experiment zum Einsatz kommt, muss die
Software wissen, auf welchem Wege das Data-Routing ans VME
angeschlossen ist. Es gibt hierfuer mehrere Moeglichkeiten:
   * Direkter Anschluss an das Prozessor-Board (MVME162, MVME172)

   * Anschluss an die Interface-Boards VIPC610 oder IPC01. Dabei wird
     fuer das Data-Routing ueblicherweise der IP-Slot C/D verwendet
     (unterer frontseitiger Stecker).

   * Anschluss an ein anderes Interface-Board. Dessen VME-Bus-Adresse
     muss eingetragen werden.

3.5.5 Control Routing hardware
------------------------------

Falls das Control-Routing im Experiment zum Einsatz kommt, muss die
Software wissen, auf welchem Wege das Control-Routing ans VME
angeschlossen ist. Es gibt hierfuer mehrere Moeglichkeiten:
   * Direkter Anschluss an das Prozessor-Board (MVME162, MVME172)

   * Anschluss an die Interface-Boards VIPC610 oder IPC01. Dabei wird
     fuer das Control-Routing ueblicherweise der IP-Slot A/B verwendet
     (oberer frontseitiger Stecker).

   * Anschluss an ein anderes Interface-Board. Dessen VME-Bus-Adresse
     und die Interrupt_Prioritaet muessen eingetragen werden.

3.5.6 Data identification bits
------------------------------

Festlegen der Datenkennungs-Bits. Zur Unterscheidung der Daten von
verschiedenen Datenquellen sind die Messdaten mit einer Kennung
versehen. Sie kann ermittelt werden aus der Anzeige der
Interfacesteuerungen im Routing-Einschub (siehe Routing-Beschreibung),
oder durch Darstellung der Messdaten mittels der Funktion 'Print
hardware info' auf dem Bildschirm.

4 Archivierung der Daten
************************

Die VME-Systeme besitzen in der Regel keine eigenen Medien zum Speichern
der Messdaten sondern sie benutzen die Dienste von Servern im Netzwerk.

   Unter VxWorks, dem Betriebssystem der VME-Rechner, wird im Boot-File
des VME-Rechners der Server und der User-Account festgelegt, von dem das
System gebootet wird.  Nach dem Booten eines VME-Rechners ist, wie bei
einem normalen Login, die Home-Directory des Users als Work-Directory
eingestellt. Mit `cd "path"' ("'s nicht vergessen!) bewegt man sich in
fast gewohnter Weise durch die Directory-Hierarchie. Die Schreibweise
fuer Pfadangaben richtet sich nach dem Host-Rechner.

   Diese Netzwerkzugriffe erfolgen ueber RSH oder FTP (im Boot-File
festgelegt). Fuer RSH muss der File $HOME/.rhosts die entsprechende
Freigabe enthalten.

   Fuer den Transfer grosser Datenmengen, insbesondere bei "List-Mode"
Messungen, sind RSH und FTP jedoch nicht geeignet. In solchen Faellen
sollte der Datentransfer ueber NFS erfolgen. Dazu muss auf dem
Host-Rechner der /etc/exports File die notwendigen Freigaben enthalten
und in den Boot-Script-File $HOME/ex_home/ex_param/startup.vxw muessen
die benoetigten NFS-Verbindungen eingetragen werden.

   Um das Ganze uebersichtlich zu halten, werden die VME-Systeme in der
Regel zur Zeit folgendermassen betrieben:
   * Die Host-Rechner sind Unix-Rechner (Servix, Atomix).

   * Zu jedem Experiment "xxxx" gibt es auf dem Host-Rechner einen
     gleichnamigen Account. Meistens traegt der VME-Rechner ebenfalls
     diesen Namen.
     Auf einem solchen Experiment-Account sind folgende Directories
     vorhanden
     ($HOME = Home Directory des Accounts):
          $HOME/ex_home/ex_data:   Messdaten
          $HOME/ex_home/ex_help:   Help-Files fuer die Mess- und Auswerteprogramme
          $HOME/ex_home/ex_param:  Parametersaetze der Mess- und Auswerteprogramme
          $HOME/ex_home/ex_prog:   Mess- und Auswerteprogramme
          $HOME/ex_home/vxw:       VxWorks Betriebssysteme fuer die VME-Rechner

   * Das Booten und die nachfolgenden Nicht-NFS-Zugriffe erfolgen ueber
     RSH auf den Servix.  Bei der Angabe des Messdatenpfades werden
     folgende Schreibweisen als RSH-Verbindung verstanden:
          bootHost:spektr.spe      $HOME/spektr.spe
          bootHost:ddd/spektr.spe  $HOME/ddd/spektr.spe
          ~/spektr.spe             $HOME/spektr.spe
          ~/ddd/spektr.spe         $HOME/ddd/spektr.spe
          spektr.spe               ./spektr.spe
          ddd/spektr.spe           ./ddd/spektr.spe

   * Als NFS-Verbindungen stehen die Laufwerks-Bezeichnungen "home:"
     und "data:" zur Verfuegung, die auf dem Servix zu folgenden
     Directories fuehren:
          home:spektr.spe          $HOME/spektr.spe
          data:spektr.spe          $HOME/ex_home/ex_data/spektr.spe
     Weitere NFS-Laufwerke koennen im Boot-Script-File freigegeben bzw.
     neu definiert werden.
     Die existierenden NFS-Laufwerke koennen Sie sich mit dem
     SHOW-Programm unter "Network(NFS) devices" anzeigen lassen.

   * Zur Umgehung eines aktuellen VxWorks-Systemfehlers wird nach der
     Laufwerksangabe './' eingefuegt:
          home:ex_home/ex_data/test.spe   -> home:./ex_home/ex_data/test.spe

   * Das Messprogramm hebt seine aktuellen Parameter in dem File
          $HOME/ex_home/ex_param/<Programmname>par.vxw
     auf, um sie bei einem nachfolgenden Start als Default-Werte
     anbieten zu koennen.

5 Statusanzeigen auf dem Bildschirm
***********************************

In der obersten Zeile wird an erster Stelle der Name des Programmes
dargestellt. An zweiter Stelle folgt die Statusinformation
offline/online/test, die anzeigt ob die Messung gestartet ist oder
nicht. Dann folgt der Name des Spektrums und am Ende der Zeile eine
detaillierte Statusanzeige in hexadezimaler Form von folgender
Bedeutung:

        STATUS of spectrum (hexadecimal)
                0001        Spectrum created on disk
                0002        Spectrum saved on disk
                0004        Spectrum created in memory
                0008        Spectrum loaded in memory
                0010        Experiment online
                0020        Autonomous stop of experiment
                0040        Test run
                0100        Experiment failure
                0200        Wrong typ of spectrum
                0400        Error reading header of spectrum
                0800        Error reading spectrum file
                1000        Header loaded

Die zweite Zeile dient der Ausgabe von Fehlermeldungen (blinkend), sowie
Informationen ueber die augenblicklichen Aktivitaeten des Programmes.