Grundlegendes
Makros stellen Folgen von Befehlen dar, die durch die Klasse TSteering in entsprechende
Motor- und Detektorsteueranweisungen umgesetzt werden. Damit besteht die Möglichkeit
der Automatisierung der Steuerung durch entsprechende Makrodefinitionen in sogenannten
Makrodateien (*.mak). Makros bzw. Makrobefehle werden auch programmintern benutzt,
so zum Beispiel bei der Mehrfachbelichtung und bei der automatischen Nachregelung
der Intensität.
Syntax der Makrodateien
Makrodatei = {Makro "\n"}+.
Makro = CommonBlock "\n" Befehlsblock.
Commonblock = "[Common]" "\n" Namensdef "\n" Längendef.
Namensdef = "Name" Trennzeichen Makroname. Längendef = "Length" Trennzeichen
Zahl.
Makroname = "InquireHwb" | "BatchMacro" | "MiddleOfValley" | "SearchReflection"| "Test" | "AzimutalJustify" | "SetupTopography" | "ScanJob" | "AreaScanJob".
Zahl = 1...n.
Befehlsblock = "[Commands]" "\n" Befehlsfolge "[End]".
Befehlsfolge = {Befehl {Trennzeichen Parameter}* "\n"}+.
Trennzeichen = " " | "=" | "\t" | "\r" | "\n".
Befehl = "GotoPeak" | "GotoIntensity" | "ChooseAxis" | "GetHWB" | "SetWidth" | "AreaScan" | "Scan" | "ControlFlank" | "ShowHWB" | "SaveData" | "ChooseDevice" | "Calculate" | "LoadPoint" | "ShowValue" | "MoveToPoint" | "SetFileName" | "Inquire" | "GotoLine" | "Stop" | "SetupScan" | "SetupAreaScan".
Parameter = "LargeSide" | "SmallSide" | "ToSmallerAngle" | "ToLargerAngle" | "Equidistant" | "Interpolation" | "Reflection" | "LastGoal" | "Standard" | "DecreaseWidth" | "ThisDFPos" | "BackMove" | "MaximizeTilt" | "MaximizeCollimator" | "MaximizeGradient" | "DynamicWidth" | "Result" | "StaticStepWidth" | "IncreasePeak" | "Relative" | "AreaScanResult" | "AbsorberUsed" | "Hwb" | "Difference" | "ScanResult" | "Middle" | "Array" | "Start" | "Peak" | "Min" | "Max" | "List" | "Argument" | "Opposite" | "ForAreaScan" | "ForScan".