distro release 2.1.1

This commit is contained in:
2020-06-09 12:31:05 +02:00
parent b7390cb46f
commit ef9d08e5f5
168 changed files with 3286 additions and 1205 deletions

View File

@ -36,12 +36,14 @@ menu "PEARL"
help = {"Display preview panel with latest image from Scienta", "Requires ARPES package and EPICS XOP"}
PearlMenuEnableFunc("ast_setup") + "Angle Scan Tracker", /Q, PearlAnglescanTracker("X03DA-SCIENTA:", "(65280,54528,48896)")
help = {"Preview of acquired angle scan data and current detection angles.", "Requires ARPES package and EPICS XOP"}
PearlMenuEnableFunc("sample_tracker") + "Sample Tracker", /Q, PearlSampleTracker(1)
help = {"Live tracking and adjustment of sample position.", "Requires ARPES package and EPICS XOP"}
end
submenu "Cameras"
PearlMenuEnableFunc("ad_display_profiles") + "Exit Slit Live View", /Q, PearlLiveDisplay("X03DA-OP-PS1:", "OP", "(65280,54528,48896)")
PearlMenuEnableFunc("ad_display_profiles") + "Exit Slit Camera", /Q, PearlLiveDisplay("X03DA-OP-PS1:", "OP", "(65280,54528,48896)")
help = {"Display preview panel with latest image from Scienta", "Requires ARPES package and EPICS XOP"}
PearlMenuEnableFunc("ad_display_profiles") + "Manipulator Live View", /Q, PearlLiveDisplay("X03DA-ES-PS1:", "ES", "(65280,54528,48896)")
PearlMenuEnableFunc("ad_display_profiles") + "Manipulator Camera", /Q, PearlCameraDisplay("X03DA-ES-PS1:", "ES", "(32767,32767,32767)")
help = {"Display live panel of the exit slit camera", "Requires ARPES package and EPICS XOP"}
end
@ -65,7 +67,7 @@ menu "PEARL"
end
submenu "Sample Preparation"
PearlMenuEnableFunc("ann_ramp_start") + "Annealing Ramp", /Q, panel_ramp_gen()
PearlMenuEnableFunc("ramp_generator") + "Annealing Ramp", /Q, ramp_generator()
help = {"Sample annealing ramp generator"}
end
@ -79,10 +81,12 @@ menu "PEARL"
end
end
/// check whether a function name exists
///
/// return a prefix which disables the menu item
/// if the function does not exist
///
function /s PearlMenuEnableFunc(funcname)
// checks whether a function name exists
// and conditionally returns a prefix which disables the menu item
// if the function does not exist
string funcname
if (exists(funcname) >= 3)
return ""
@ -94,7 +98,6 @@ end
function LoadPearlOptics()
execute /p/q/z "INSERTINCLUDE \"pearl-optics\""
execute /p/q/z "COMPILEPROCEDURES "
execute /p/q/z "PearlOpticsPanel#po_InitPanel()"
execute /p/q/z "BuildMenu \"PEARL\""
end
@ -165,33 +168,100 @@ function DisplayGizmoSlicer()
endif
end
/// area detector live display
///
/// display an area detector channel in an ad_display_profiles() window.
///
/// @param epicsname base name of the detector, e.g. X03DA-SCIENTA:
/// image1: and cam1: are appended by the function.
/// see ad_connect().
///
/// @param nickname nick name under which this detector is referred to in Igor.
/// must be a valid name for a data folder.
/// see ad_connect().
///
/// @param wbRGB window background color, e.g. "(32768,49152,55296)"
///
function PearlLiveDisplay(epicsname, nickname, wbRGB)
string epicsname // base name of the detector, e.g. X03DA-SCIENTA:
// image1: and cam1: are appended by the function
// see ad_connect
string nickname // nick name under which this detector is referred to in Igor
// must be a valid data folder name
// see ad_connect
string wbRGB // window background color, e.g. "(32768,49152,55296)"
string epicsname
string nickname
string wbRGB
string cmd
sprintf cmd, "ad_connect(\"%s\", \"%s\")", epicsname, nickname
execute /q/z cmd
sprintf cmd, "ad_display_profiles(root:pearl_epics:%s:image)", nickname
execute /q/z cmd
//sprintf cmd, "ad_add_overlay(root:pearl_epics:%s:image)", nickname
//execute /q/z cmd
sprintf cmd, "ModifyGraph wbRGB=%s", wbRGB
execute /q/z cmd
sprintf cmd, "add_roi_controls()"
execute /q/z cmd
end
/// area detector surveillance camera display
///
/// display an area detector channel in a simple image window
/// without any interactive controls.
///
/// @param epicsname base name of the detector, e.g. X03DA-SCIENTA:
/// image1: and cam1: are appended by the function.
/// see ad_connect().
///
/// @param nickname nick name under which this detector is referred to in Igor.
/// must be a valid name for a data folder.
/// see ad_connect().
///
/// @param wbRGB window background color, e.g. "(32768,49152,55296)"
///
function PearlCameraDisplay(epicsname, nickname, wbRGB)
string epicsname
string nickname
string wbRGB
string cmd
sprintf cmd, "ad_connect(\"%s\", \"%s\")", epicsname, nickname
execute /q/z cmd
sprintf cmd, "display; appendimage root:pearl_epics:%s:image", nickname
execute /q/z cmd
sprintf cmd, "ModifyGraph wbRGB=%s", wbRGB
execute /q/z cmd
cmd = "ModifyGraph height={Plan,1,left,bottom}"
execute /q/z cmd
end
/// display the angle scan tracker window
///
/// @param epicsname base name of the detector, e.g. X03DA-SCIENTA:
/// image1: and cam1: are appended by the function.
/// see ad_connect().
///
/// @param wbRGB window background color, e.g. "(32768,49152,55296)"
///
function PearlAnglescanTracker(epicsname, wbRGB)
string epicsname // base name of the detector, e.g. X03DA-SCIENTA:
// image1: and cam1: are appended by the function
// see ast_setup
string wbRGB // window background color, e.g. "(32768,49152,55296)"
string epicsname
string wbRGB
string cmd
sprintf cmd, "ast_setup()"
execute /q/z cmd
sprintf cmd, "ModifyGraph wbRGB=%s", wbRGB
execute /q/z cmd
end
/// display the sample tracker window
///
/// @param epicsname base name of the detector, e.g. X03DA-SCIENTA:
/// image1: and cam1: are appended by the function.
/// see ad_connect().
///
/// @param wbRGB window background color, e.g. "(32768,49152,55296)"
///
function PearlSampleTracker(action)
variable action
string cmd
sprintf cmd, "sample_tracker(%u)", action
execute /q/z cmd
end