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.
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.
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.
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..
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.
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 |
???