Die Detektorenabschnitte in der Konfigurationsdatei hardware.ini

 

Um dem XCTL-Programm mitzuteilen, welche Hardware für Untersuchungen verwendet werden soll, existieren spezielle Einstellungen in der Datei hardware.ini. Für jeden Detektor, der genutzt werden soll, muss in dieser Datei ein Abschnitt mit Konfigurationsdaten existieren. Am Programmende werden die Detektoreinstellungen wieder in die Initialisierungsdatei zurückgeschrieben, um Einstellungen über mehrere Messsitzungen hinaus persistent zu halten.

Verschiedene Messplätze haben also, je nachdem welche Detektoren angeschlossen sind und welche davon genutzt werden sollen, unterschiedliche Initialisierungsdateien. Benennt man die Datei um bzw. verschiebt sie in einen anderen Pfad, können mehrere Versionen einer Systemkonfiguration gespeichert werden. Die Konfiguration eines Messplatzes kann vorab vorbereitet und dann einfach durch Einspielen der richtigen Initialisierungsdatei umgesetzt werden.

 

Die Datei ist im klassischen Stil einer Windows-Initialisierungsdatei gehalten:

Jeder Abschnitt wird durch eine Zeile eingeleitet, in der der Name des Abschnittes in eckigen Klammern steht.

 

Bsp:

[device0]

 

In den folgenden Zeilen können dann Schlüssel/Wert-Paare folgen, bis das Dateiende erreicht ist oder ein neuer Abschnitt begonnen hat.

 

Bsp:

Schluessel=Wert

 

Die Abschnitte für die am Messplatzrechner angeschlossenen Detektoren tragen die Bezeichnung [deviceX], wobei X eine nichtnegative ganze Zahl ist. Das XCTL-Programm sucht nach diesen Detektorabschnitten, indem eine Variable bei 0 beginnend jeweils um eins hochgezählt wird. Bei ersten Mal, bei dem kein entsprechender Detektorabschnitt gefunden wird, wird davon ausgegangen, dass nun alle zu nutzenden Detektoren erfasst wurden; weitere Detektorabschnitte werden nicht berücksichtigt.

 

Basierend auf dem Wert des Schlüssels „Type=“ wird ein entsprechender Detektor vom Programm verwandt. Die Werte in einem Detektorabschnitt sind für unterschiedliche Abstraktionen eines Detektors bestimmt. Es gibt allgemeine Einstellungen, die für jeden Detektor möglich bzw. notwendig sind, es gibt Einstellungen, die nur für nulldimensionale bzw. nur für eindimensionale Detektoren gelten und es gibt Einstellungen, die nur zu einem spezifischen Detektor gehören. Jede dieser Abstraktionsstufen sucht nach entsprechenden Schlüssel/Wert-Paaren. Dabei werden nur solche Paare verarbeitet, die die jeweilige Abstraktionsstufe kennt und deshalb danach sucht. Andere Schlüssel/Wert-Paare werden schlicht ignoriert, solange sie den Syntaxregeln für Windows-Initialisierungsdateien genügen.

Jede Abstraktionsstufe besitzt ( bei Bedarf ) die Methoden LoadDetectorSettings() und SaveDetectorSettings(), die die entsprechenden Einstellungen lesen bzw. speichern.

 

Einige Schlüssel/Wert-Paare müssen vorhanden sein, zum Beispiel das Paar „Type=“, sonst kann das Programm den Detektor nicht erkennen. Einige Werte können vorhanden sein, sie müssen es aber nicht. Fehlen sie, werden an ihrer Stelle vom Programm Standardwerte genutzt. Für den beim Programmende für die entsprechende Einstellung aktuellen Wert wird dann ein neues Schlüssel/Wert-Paar in die Initialisierungsdatei eingefügt. Man kann also mit einer Initialisierungsdatei beginnen, die nur die Pflichtwerte enthält, und daraus wird dann eine gültige Konfiguration mit allen optionalen Werten erstellt.

 

Einstellungen für alle Detektoren

 

Schlüssel: Type (Pflichtfeld)

Typ des Wertes

Limits

Standardwert

Beispiel

Bemerkungen

String

 

„“

Type=Radicon

 

Anhand des Wertes wird der entsprechende Detektor verwendet. Welche Werte möglich sind, hängt von der jeweiligen Programmversion und den darin berücksichtigten Detektoren ab.

Zur Zeit sind das: „GENERIC“, „STOE-PSD“, „RADICON“, „BRAUN-PSD“, „PSD“ und „TEST“.

 

Schlüssel: Name (Pflichtfeld)

Typ des Wertes

Limits

Standardwert

String

 

„Counter“

Dieser Name erscheint in den Detektorauswahl-Kombinationsfeldern. Er ist also eher informellen Charakters.

 

Schlüssel: Debug

Typ des Wertes

Limits

Standardwert

Bemerkungen

Integer

(0, 1)

0

0 = aus

1 = ein

Dieser Wert bestimmt, ob für diesen Detektor in erhöhtem Masse Statusinformationen erzeugt werden sollen.

 

Schlüssel: ExposureTime

Typ des Wertes

Limits

Standardwert

Realzahl

[0.1, 500]

4

Dieser Wert legt die maximale Länge eines Messintervalls, die Belichtungsdauer, fest.

 

Schlüssel: ExposureCounts

Typ des Wertes

Limits

Standardwert

Integer

[10, 300000]

10000

Dieser Wert legt die maximale Anzahl von Impulsen fest, die in einem Messintervall gemessen werden darf.

 

Einstellungen für alle nulldimensionalen Detektoren

 

Schlüssel: Sound

Typ des Wertes

Limits

Standardwert

Bemerkungen

Integer

(0, 1)

1

0 = aus

1 = ein

Dieser Wert bestimmt, ob für diesen Detektor die Höhe der ermittelten Impulsrate auch akustisch repräsentiert werden soll.

 

Einstellungen für alle eindimensionalen Detektoren

 

Schlüssel: BaseAddr

Typ des Wertes

Limits

Standardwert

Bemerkungen

Integer

 

0x300

Der Wert sollte in hexadezimaler Schreibweise ( Beispiel 0x300 ) angegeben werden.

Dieser Wert legt den ersten der zu verwendenden I/O-Ports für die Kommunikation mit der Detektor-Hardware fest.

 

Schlüssel: OverflowIntensity

Typ des Wertes

Limits

Standardwert

Realzahl

 

50000.0

Dieser Wert legt fest, bei welcher ermittelten Intensität davon ausgegangen werden muss, dass ein Überlauf stattgefunden hat.

 

Schlüssel: SignalGrowUp

Typ des Wertes

Limits

Standardwert

Integer

(0, 1)

1

???

 

Schlüssel: HVRegelung

Typ des Wertes

Limits

Standardwert

Integer

(0, 1)

0

???

 

Schlüssel: ReadLeftFirst

Typ des Wertes

Limits

Standardwert

Integer

(0, 1)

1

???

 

Schlüssel: AngleStep

Typ des Wertes

Limits

Standardwert

Realzahl

 

1.0

???

 

Schlüssel: Unit

Typ des Wertes

Limits

Standardwert

String

 

Sekunden

???

 

Schlüssel: AddedChannels

Typ des Wertes

Limits

Standardwert

Integer

[1, 4095]

4

Legt fest, wie viele Kanäle des PSDs zu einer Kanalgruppe zusammengefasst werden sollen, für die ein gemeinsamer Messwert ermittelt wird.

 

Schlüssel: FirstChannel

Typ des Wertes

Limits

Standardwert

Integer

[0, 4095]

0

Erster Kanal des PSDs, mit dem gemessen werden soll..

 

Schlüssel: LastChannel

Typ des Wertes

Limits

Standardwert

Integer

[0, 4095]

4095

Letzter Kanal des PSDs, mit dem gemessen werden soll..

 

Einstellungen für einen Detektor vom Typ „Radicon SCSCS“

 

Schlüssel: IOAddr

Typ des Wertes

Limits

Standardwert

Bemerkungen

Integer

 

0x100

Der Wert sollte in hexadezimaler Schreibweise ( Beispiel 0x100 ) angegeben werden.

Dieser Wert legt den I/O-Ports für den Datenkanal der Kommunikation mit der Detektor-Hardware fest. Für den Steuerungskanal wird dann der nächsthöhere I/O-Port verwandt.

 

Schlüssel: LowerThresh

Typ des Wertes

Limits

Standardwert

Integer

[0, 1024]

150

???

 

Schlüssel: UpperThresh

Typ des Wertes

Limits

Standardwert

Integer

[0, 1024]

950

???

 

Schlüssel: HighVoltage

Typ des Wertes

Limits

Standardwert

Integer

[400, 900]

640

Dieser Wert legt die Höhe der Beschleunigungsspannung fest.

 

Einstellungen für einen Detektor vom Typ „Braun PSD“

 

Schlüssel: EnergyScale

Typ des Wertes

Limits

Standardwert

Integer

[0, 3]

2

???

 

Schlüssel: PositionScale

Typ des Wertes

Limits

Standardwert

Integer

[0, 3]

2

???

 

Schlüssel: AbbruchMitShutter

Typ des Wertes

Limits

Standardwert

Bemerkungen

Integer

(0, 1)

0

0 = aus

1 = ein

???

 

Schlüssel: EnergyLow

Typ des Wertes

Limits

Standardwert

Integer

[0, 4095/EnergyScale ]

526

???

 

Schlüssel: EnergyHigh

Typ des Wertes

Limits

Standardwert

Integer

[0, 4095/EnergyScale ]

870

???

 

Schlüssel: MuxTimeDet1

Typ des Wertes

Limits

Standardwert

Integer

[0, 61439]

40

???

 

Schlüssel: Ratemeter

Typ des Wertes

Limits

Standardwert

Integer

(0, 1)

0

???

 

Schlüssel: RealLifeTime

Typ des Wertes

Limits

Standardwert

Integer

(0, 1)

0

???

 

Schlüssel: DeathTime

Typ des Wertes

Limits

Standardwert

Integer

[0, 99]

10

???

 

Schlüssel: DelayFast

Typ des Wertes

Limits

Standardwert

Integer

 

2

???

 

Schlüssel: DelaySlow

Typ des Wertes

Limits

Standardwert

Integer

 

4

???