1 #pragma TextEncoding = "UTF-8"
2 #pragma rtGlobals=1 // Use modern global access method.
3 #pragma ModuleName = PearlMenu
21 help = {
"Data explorer panel with file import and preview",
"Requires ARPES package and HDF5 XOP"}
23 help = {
"Import area detector HDF5 data file",
"Requires ARPES package and HDF5 XOP"}
26 submenu
"On-the-Fly Data"
28 help = {
"Renames otf_xxxxxx_yyyyyy_zzzz data folders to otf_yyyyyy (removing date and suffix)",
"Requires Optics package"}
30 help = {
"Copies data from all otf_* folders into otf_batch folder",
"Requires Optics package"}
31 PearlMenuEnableFunc(
"PearlOpticsPreviewPanel") +
"OTF Preview", /Q, PearlOpticsPreviewPanel()
32 help = {
"Opens a preview panel for OTF data in otf_* folders",
"Requires Optics package"}
35 submenu
"Scienta Analyser"
37 help = {
"Display preview panel with latest image from Scienta",
"Requires ARPES package and EPICS XOP"}
39 help = {
"Preview of acquired angle scan data and current detection angles.",
"Requires ARPES package and EPICS XOP"}
41 help = {
"Live tracking and adjustment of sample position.",
"Requires ARPES package and EPICS XOP"}
46 help = {
"Display preview panel with latest image from Scienta",
"Requires ARPES package and EPICS XOP"}
48 help = {
"Display live panel of the exit slit camera",
"Requires ARPES package and EPICS XOP"}
53 help = {
"Profiles display of 2D data",
"Requires ARPES package"}
55 help = {
"Slice and profiles display of 3D data",
"Requires ARPES package"}
57 help = {
"Gizmo display of 3D data",
"Requires ARPES package"}
62 help = {
"Data processing of two-pi angle scans",
"Requires ARPES package"}
67 help = {
"Open an ELOG panel to send entries to an ELOG logbook"}
70 submenu
"Sample Preparation"
72 help = {
"Sample annealing ramp generator"}
77 help = {
"Data processing and analysis for ARPES experiments"}
79 help = {
"Process control for sample preparation"}
81 help = {
"Data processing and analysis for beamline commissioning"}
92 if (exists(funcname) >= 3)
100 execute /p/q/z "INSERTINCLUDE \"pearl-optics\""
101 execute /p/q/z "COMPILEPROCEDURES "
102 execute /p/q/z "BuildMenu \"PEARL\""
106 execute /p/q/z "INSERTINCLUDE \"pearl-arpes\""
107 execute /p/q/z "COMPILEPROCEDURES "
108 execute /p/q/z "BuildMenu \"PEARL\""
112 execute /p/q/z "INSERTINCLUDE \"pearl-preparation\""
113 execute /p/q/z "COMPILEPROCEDURES "
114 execute /p/q/z "BuildMenu \"PEARL\""
118 dfref dfBefore = GetDataFolderDFR()
119 Execute /q/z "CreateBrowser prompt=\"Select 2D wave\", showWaves=1, showVars=0, showStrs=0"
120 dfref dfAfter = GetDataFolderDFR()
121 SetDataFolder dfBefore
123 SVAR list = S_BrowserList
126 if ((flag != 0) && (ItemsInList(list) >= 1))
127 string brickname = StringFromList(0, list)
135 dfref dfBefore = GetDataFolderDFR()
136 Execute /q/z "CreateBrowser prompt=\"Select 3D wave\", showWaves=1, showVars=0, showStrs=0"
137 dfref dfAfter = GetDataFolderDFR()
138 SetDataFolder dfBefore
140 SVAR list = S_BrowserList
143 if ((flag != 0) && (ItemsInList(list) >= 1))
144 string brickname = StringFromList(0, list)
154 dfref dfBefore = GetDataFolderDFR()
155 Execute /q/z "CreateBrowser prompt=\"Select 3D wave\", showWaves=1, showVars=0, showStrs=0"
156 dfref dfAfter = GetDataFolderDFR()
157 SetDataFolder dfBefore
159 SVAR list = S_BrowserList
162 if ((flag != 0) && (ItemsInList(list) >= 1))
163 string brickname = StringFromList(0, list)
192 sprintf cmd, "ad_connect(\"%s\", \"%s\")", epicsname, nickname
198 sprintf cmd, "ModifyGraph wbRGB=%s", wbRGB
200 sprintf cmd, "add_roi_controls()"
225 sprintf cmd, "ad_connect(\"%s\", \"%s\")", epicsname, nickname
227 sprintf cmd, "display; appendimage root:pearl_epics:%s:image", nickname
229 sprintf cmd, "ModifyGraph wbRGB=%s", wbRGB
231 cmd = "ModifyGraph height={Plan,1,left,bottom}
"
243 function PearlAnglescanTracker(epicsname, wbRGB)
250 sprintf cmd, "ModifyGraph wbRGB=%s
", wbRGB
262 function PearlSampleTracker(action)
265 sprintf cmd, "sample_tracker(%u)
", action