diff --git a/config/config.properties b/config/config.properties
index dcc2cc6..d9a28fe 100644
--- a/config/config.properties
+++ b/config/config.properties
@@ -1,21 +1,34 @@
-#Wed Mar 16 09:54:44 CET 2022
+#Tue Jun 14 10:01:49 CEST 2022
+autoSaveScanData=true
+simulation=false
+logDaysToLive=7
+dataScanSaveOutput=false
+userAuthenticator=
+logLevelConsole=Off
+filePermissionsConfig=Public
+scanStreamerPort=-1
+dataScanSaveScript=true
+dataScanSaveSetpoints=true
+notifiedTasks=
+parallelInitialization=true
+fdaSerialization=false
+dataTransferPath=
+saveConsoleSessionFiles=false
+versionTrackingManual=true
+dataTransferMode=Off
hostName=
userManagement=false
disableEmbeddedAttributes=false
instanceName=SIS
-autoSaveScanData=true
-simulation=false
dataServerPort=-1
serverPort=8080
hideServerMessages=false
versionTrackingEnabled=true
dataPath={data}/{year}_{month}/{date}/{date}_{time}_{name}
serverEnabled=true
-logDaysToLive=7
depthDimension=0
dataScanReleaseRecords=false
dataScanPreserveTypes=true
-dataScanSaveOutput=false
logLevel=Info
dataScanFlushRecords=false
logPath={logs}/{date}_{time}
@@ -26,23 +39,11 @@ sessionHandling=Off
terminalEnabled=false
notificationLevel=Off
filePermissionsScripts=Public
-userAuthenticator=
terminalPort=3579
-logLevelConsole=Off
-filePermissionsConfig=Public
-scanStreamerPort=-1
-dataScanSaveScript=false
dataTransferUser=
-dataScanSaveSetpoints=false
-notifiedTasks=
filePermissionsData=Default
-parallelInitialization=true
-dataTransferPath=
-saveConsoleSessionFiles=false
versionTrackingLogin={context}/svcusr-hlapp_robot
noBytecodeFiles=false
versionTrackingRemote=git@git.psi.ch\:pshell_config/x09la.git
-versionTrackingManual=true
dataProvider=h5
-dataTransferMode=Off
saveCommandStatistics=false
diff --git a/config/devices.properties b/config/devices.properties
index b297c0b..b0d3330 100644
--- a/config/devices.properties
+++ b/config/devices.properties
@@ -16,6 +16,7 @@ shutter=ch.psi.pshell.epics.DiscretePositioner|X09LA-SIS:OPEN|||true
grating=ch.psi.pshell.epics.DiscretePositioner|X09LA-PGM-GRCH:GRATING X09LA-PGM:grating|||true
pgm_cff=ch.psi.pshell.epics.Positioner|X09LA-PGM:cff.A.SETP X09LA-PGM:cff.A.VAL|||true
photon_energy=ch.psi.pshell.epics.Positioner|X09LA-PHS:E_SP X09LA-PGM:rbkenergy|||true
+id_energy=ch.psi.pshell.epics.ProcessVariable|X09LA-ID:ENERGY_SP|||true
oper_mode=ch.psi.pshell.epics.DiscretePositioner|X09LA-PHS-E:OPT|||true
temp_cryostat=ch.psi.pshell.epics.ReadonlyProcessVariable|X09LA-PC-LAKESHORE:TEMP_RBV|Read||false
temp_sample1=ch.psi.pshell.epics.ReadonlyProcessVariable|X09LA-PC-LAKESHORE:TEMP-B|Read||
@@ -33,6 +34,7 @@ fe_vert_width=ch.psi.pshell.epics.ProcessVariable|X09LA-FE-SVsize|||true
fe_horiz_width=ch.psi.pshell.epics.ProcessVariable|X09LA-FE-SHsize|||true
fe_state=ch.psi.pshell.epics.DiscretePositioner|X09LA-FE-DSAPER|||true
master=ch.psi.pshell.device.MasterPositioner|tilt x y z|||
+analyser_slit=ch.psi.pshell.epics.DiscretePositioner|X09LA-ES1-DA30:SLIT|||true
image=ch.psi.pshell.imaging.CameraSource|scienta|||true
cam1=ch.psi.pshell.imaging.MjpegSource|http://129.129.117.82/axis-cgi/mjpg/video.cgi?camera=1||-200|
cam2=ch.psi.pshell.imaging.MjpegSource|http://129.129.117.82/axis-cgi/mjpg/video.cgi?camera=2||-200|
@@ -40,3 +42,4 @@ cam3=ch.psi.pshell.imaging.MjpegSource|http://129.129.117.82/axis-cgi/mjpg/video
cam4=ch.psi.pshell.imaging.MjpegSource|http://129.129.117.82/axis-cgi/mjpg/video.cgi?camera=4||-200|
cam5=ch.psi.pshell.imaging.MjpegSource|http://129.129.117.84/axis-cgi/mjpg/video.cgi||-200|
cam6=ch.psi.pshell.imaging.MjpegSource|http://129.129.117.85/axis-cgi/mjpg/video.cgi||-200|
+#raw_image=ch.psi.pshell.imaging.MjpegSource|http://129.129.117.81:8080/monitor/raw-camera-hardware-settings||-200|
diff --git a/config/preferences.bin b/config/preferences.bin
new file mode 100644
index 0000000..e94eb18
Binary files /dev/null and b/config/preferences.bin differ
diff --git a/config/preferences.json b/config/preferences.json
new file mode 100644
index 0000000..a445aea
--- /dev/null
+++ b/config/preferences.json
@@ -0,0 +1,126 @@
+{
+ "fontShellPanel" : {
+ "name" : "Monospaced",
+ "style" : 0,
+ "size" : 13
+ },
+ "fontShellCommand" : {
+ "name" : "SansSerif",
+ "style" : 0,
+ "size" : 13
+ },
+ "fontOutput" : {
+ "name" : "Monospaced",
+ "style" : 0,
+ "size" : 13
+ },
+ "fontEditor" : {
+ "name" : "Monospaced",
+ "style" : 0,
+ "size" : 13
+ },
+ "fontPlotLabel" : {
+ "name" : "SansSerif",
+ "style" : 0,
+ "size" : 11
+ },
+ "fontPlotTick" : {
+ "name" : "SansSerif",
+ "style" : 0,
+ "size" : 10
+ },
+ "fontPlotTitle" : {
+ "name" : "SansSerif",
+ "style" : 1,
+ "size" : 13
+ },
+ "fontTerminal" : {
+ "name" : "Monospaced",
+ "style" : 0,
+ "size" : 14
+ },
+ "tabSize" : 4,
+ "contentWidth" : 0,
+ "editorBackground" : null,
+ "editorForeground" : null,
+ "simpleEditor" : false,
+ "hideEditorLineNumbers" : false,
+ "hideEditorContextMenu" : false,
+ "consoleLocation" : "Left",
+ "dataPanelLocation" : null,
+ "openDataFilesInDocTab" : false,
+ "noVariableEvaluationPropagation" : false,
+ "processingScripts" : [ ],
+ "asyncViewersUpdate" : false,
+ "scanPlotDisabled" : false,
+ "scanTableDisabled" : false,
+ "cachedDataPanel" : false,
+ "dataExtensions" : null,
+ "dataSubFiles" : null,
+ "hideFileName" : false,
+ "showEmergencyStop" : false,
+ "showHomingButtons" : false,
+ "showJogButtons" : false,
+ "hideScanPanel" : false,
+ "hideOutputPanel" : false,
+ "showXScanFileBrowser" : false,
+ "showQueueBrowser" : false,
+ "backgroundRendering" : false,
+ "showImageStatusBar" : true,
+ "persistRendererWindows" : true,
+ "defaultRendererColormap" : "Grayscale",
+ "linePlot" : "ch.psi.pshell.plot.LinePlotJFree",
+ "matrixPlot" : "ch.psi.pshell.plot.MatrixPlotJFree",
+ "surfacePlot" : "null",
+ "timePlot" : "ch.psi.pshell.plot.TimePlotJFree",
+ "plotsDetached" : false,
+ "plotLayout" : "Vertical",
+ "quality" : "High",
+ "defaultPlotColormap" : "Temperature",
+ "markerSize" : 2,
+ "plotBackground" : null,
+ "gridColor" : null,
+ "outlineColor" : null,
+ "disableOffscreenBuffer" : false,
+ "defaultPanels" : [ {
+ "deviceClassName" : "Scienta",
+ "panelClassName" : "ScientaPanel"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.epics.Scaler",
+ "panelClassName" : "ch.psi.pshell.swing.ScalerPanel"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.epics.Scienta",
+ "panelClassName" : "ch.psi.pshell.swing.ScientaPanel"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.device.Motor",
+ "panelClassName" : "ch.psi.pshell.swing.MotorPanel"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.device.MasterPositioner",
+ "panelClassName" : "ch.psi.pshell.swing.MasterPositionerPanel"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.device.ProcessVariable",
+ "panelClassName" : "ch.psi.pshell.swing.ProcessVariablePanel"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.device.MotorGroup",
+ "panelClassName" : "ch.psi.pshell.swing.MotorGroupPanel"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.device.DiscretePositioner",
+ "panelClassName" : "ch.psi.pshell.swing.DiscretePositionerPanel"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.device.Camera",
+ "panelClassName" : "ch.psi.pshell.swing.CameraPanel"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.device.Slit",
+ "panelClassName" : "ch.psi.pshell.swing.SlitPanel"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.device.HistogramGenerator",
+ "panelClassName" : "ch.psi.pshell.swing.HistogramGeneratorPanel"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.device.ReadonlyRegister$ReadonlyRegisterArray",
+ "panelClassName" : "ch.psi.pshell.swing.DeviceValueChart"
+ }, {
+ "deviceClassName" : "ch.psi.pshell.device.ReadonlyRegister$ReadonlyRegisterMatrix",
+ "panelClassName" : "ch.psi.pshell.swing.DeviceValueChart"
+ } ],
+ "scriptPopupDialog" : "Exception"
+}
\ No newline at end of file
diff --git a/config/setup.properties b/config/setup.properties
index 8c46db8..3769028 100644
--- a/config/setup.properties
+++ b/config/setup.properties
@@ -1,23 +1,25 @@
-#Mon Apr 19 13:32:04 CEST 2021
+#Tue Jun 14 10:01:48 CEST 2022
scriptPath={home}/script
sessionsPath={outp}/sessions
-pluginsPath={home}/plugins
configFileDevices={config}/devices.properties
-consoleSessionsPath={sessions}/console
-libraryPath={script}; {script}/Lib
-contextPath={outp}/context
-configFilePlugins={config}/plugins.properties
+xscanPath={script}
+queuePath={script}/queues
extensionsPath={home}/extensions
configPath={home}/config
configFileSessions={config}/sessions.properties
userSessionsPath={sessions}/user
dataPath={outp}/data
-devicesPath={home}/devices
configFileVariables={config}/variables.properties
-configFileSettings={config}/settings.properties
wwwPath={home}/www
logPath={outp}/log
-imagesPath={outp}/images
configFile={config}/config.properties
-scriptType=py
configFileTasks={config}/tasks.properties
+pluginsPath={home}/plugins
+consoleSessionsPath={sessions}/console
+libraryPath={script}; {script}/Lib
+contextPath={outp}/context
+configFilePlugins={config}/plugins.properties
+devicesPath={home}/devices
+configFileSettings={config}/settings.properties
+imagesPath={outp}/images
+scriptType=py
diff --git a/config/variables.properties b/config/variables.properties
index 338e903..a40d7d8 100644
--- a/config/variables.properties
+++ b/config/variables.properties
@@ -1,4 +1,4 @@
-#Tue Apr 12 13:18:32 CEST 2022
-LastRunDate=220412
-DaySequentialNumber=1
-FileSequentialNumber=278
+#Mon Jun 27 14:15:35 CEST 2022
+LastRunDate=220627
+DaySequentialNumber=6
+FileSequentialNumber=365
diff --git a/devices/acmi.properties b/devices/acmi.properties
index ccabaf2..72b64f9 100644
--- a/devices/acmi.properties
+++ b/devices/acmi.properties
@@ -1,6 +1,7 @@
-#Mon Sep 27 17:22:53 CEST 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=mbar
offset=0.0
precision=12
sign_bit=0
scale=1.0
+description=null
diff --git a/devices/cff.properties b/devices/cff.properties
index 3894d8d..56062f1 100644
--- a/devices/cff.properties
+++ b/devices/cff.properties
@@ -1,10 +1,11 @@
-#Tue Dec 07 11:50:14 CET 2021
+#Tue Jun 14 10:02:05 CEST 2022
+minValue=2.25
+unit=
offset=0.0
maxValue=2.25
rotation=false
precision=2
-scale=1.0
-resolution=NaN
-minValue=2.25
-unit=
sign_bit=0
+scale=1.0
+description=null
+resolution=NaN
diff --git a/devices/energy.properties b/devices/energy.properties
index 9a79895..ba23127 100644
--- a/devices/energy.properties
+++ b/devices/energy.properties
@@ -1,10 +1,11 @@
-#Fri Nov 12 15:40:11 CET 2021
+#Tue Jun 14 10:02:05 CEST 2022
+minValue=0.0
+unit=eV
offset=0.0
maxValue=350.0
rotation=false
precision=3
-scale=1.0
-resolution=0.01
-minValue=0.0
-unit=eV
sign_bit=0
+scale=1.0
+description=null
+resolution=0.02
diff --git a/devices/exit_slit.properties b/devices/exit_slit.properties
index d607b24..4e16967 100644
--- a/devices/exit_slit.properties
+++ b/devices/exit_slit.properties
@@ -1,10 +1,11 @@
-#Tue Dec 07 21:38:48 CET 2021
+#Tue Jun 14 10:01:51 CEST 2022
+unit=um
+minValue=0.0
offset=0.0
maxValue=200.0
precision=1
rotation=false
-scale=1.0
-resolution=NaN
-unit=um
-minValue=0.0
sign_bit=0
+scale=1.0
+description=null
+resolution=NaN
diff --git a/devices/fe_horiz_width.properties b/devices/fe_horiz_width.properties
index aca63da..7a2d6b8 100644
--- a/devices/fe_horiz_width.properties
+++ b/devices/fe_horiz_width.properties
@@ -1,4 +1,4 @@
-#Tue Dec 07 13:44:36 CET 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=mm
minValue=NaN
offset=0.0
@@ -6,4 +6,5 @@ maxValue=NaN
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/fe_vert_width.properties b/devices/fe_vert_width.properties
index aca63da..7a2d6b8 100644
--- a/devices/fe_vert_width.properties
+++ b/devices/fe_vert_width.properties
@@ -1,4 +1,4 @@
-#Tue Dec 07 13:44:36 CET 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=mm
minValue=NaN
offset=0.0
@@ -6,4 +6,5 @@ maxValue=NaN
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/helium_valve.properties b/devices/helium_valve.properties
index d669c12..6520e99 100644
--- a/devices/helium_valve.properties
+++ b/devices/helium_valve.properties
@@ -1,6 +1,7 @@
-#Mon Sep 27 17:22:53 CEST 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=0
offset=0.0
precision=0
sign_bit=0
scale=1.0
+description=null
diff --git a/devices/id_energy.properties b/devices/id_energy.properties
new file mode 100644
index 0000000..fd2e72c
--- /dev/null
+++ b/devices/id_energy.properties
@@ -0,0 +1,10 @@
+#Tue Jul 05 16:22:46 CEST 2022
+minValue=NaN
+unit=eV
+offset=0.0
+maxValue=NaN
+precision=2
+sign_bit=0
+scale=1.0
+description=Top level ID energy setpoint
+resolution=NaN
diff --git a/devices/image.properties b/devices/image.properties
index bf29fad..9deada8 100644
--- a/devices/image.properties
+++ b/devices/image.properties
@@ -1,4 +1,4 @@
-#Mon Aug 30 16:46:12 CEST 2021
+#Wed May 11 15:02:09 CEST 2022
spatialCalOffsetY=NaN
spatialCalOffsetX=NaN
colormapLogarithmic=false
@@ -6,12 +6,12 @@ scale=1.0
grayscale=false
spatialCalScaleX=NaN
spatialCalScaleY=NaN
-colormapMax=NaN
+colormapMax=246.928
rescaleOffset=0.0
roiWidth=-1
colormap=Grayscale
invert=false
-colormapMin=NaN
+colormapMin=0.0
rotation=0.0
rotationCrop=false
rescaleFactor=1.0
@@ -19,7 +19,7 @@ spatialCalUnits=mm
flipVertically=false
roiHeight=-1
flipHorizontally=false
-colormapAutomatic=true
+colormapAutomatic=false
roiY=0
roiX=0
transpose=false
diff --git a/devices/master.properties b/devices/master.properties
index 85646bd..dff5215 100644
--- a/devices/master.properties
+++ b/devices/master.properties
@@ -1,18 +1,19 @@
-#Wed Sep 29 11:32:23 CEST 2021
-slave2Positions=-0.3|0.1|0.6
+#Tue Jun 14 10:01:51 CEST 2022
+slave2Positions=-0.3|0.0|0.1
offset=0.0
maxValue=100.0
slave5Positions=null
rotation=false
precision=4
scale=1.0
+description=null
slave4Positions=null
resolution=0.1
mode=LINEAR
minValue=-100.0
unit=deg
-slave1Positions=0.2|1.0|1.3
-slave3Positions=-0.5|0.0|0.7
+slave1Positions=0.2|0.0|1.0
+slave3Positions=-0.5|0.0|0.0
sign_bit=0
-masterPositions=-1.0|0.0|1.0
+masterPositions=-10.0|0.0|10.0
slave6Positions=null
diff --git a/devices/master_test.properties b/devices/master_test.properties
new file mode 100644
index 0000000..4690cca
--- /dev/null
+++ b/devices/master_test.properties
@@ -0,0 +1,19 @@
+#Tue Jun 14 10:30:47 CEST 2022
+slave2Positions=null
+offset=0.0
+maxValue=2000.0
+slave5Positions=null
+rotation=false
+precision=-1
+scale=1.0
+description=null
+slave4Positions=null
+resolution=NaN
+mode=LINEAR
+minValue=0.0
+unit=eV
+slave1Positions=null
+slave3Positions=null
+sign_bit=0
+masterPositions=null
+slave6Positions=null
diff --git a/devices/mono_energy.properties b/devices/mono_energy.properties
new file mode 100644
index 0000000..6826604
--- /dev/null
+++ b/devices/mono_energy.properties
@@ -0,0 +1,10 @@
+#Tue Jul 05 16:22:01 CEST 2022
+minValue=NaN
+unit=eV
+offset=0.0
+maxValue=NaN
+precision=2
+sign_bit=0
+scale=1.0
+description=Top level ID energy setpoint
+resolution=NaN
diff --git a/devices/pgm_cff.properties b/devices/pgm_cff.properties
index 8d04da8..e31775d 100644
--- a/devices/pgm_cff.properties
+++ b/devices/pgm_cff.properties
@@ -1,4 +1,4 @@
-#Tue Dec 07 16:46:29 CET 2021
+#Tue Jun 14 10:01:50 CEST 2022
minValue=2.25
unit=2.250
offset=0.0
@@ -7,4 +7,5 @@ rotation=false
precision=2
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/phi.properties b/devices/phi.properties
index 38150ad..7bbeafd 100644
--- a/devices/phi.properties
+++ b/devices/phi.properties
@@ -1,18 +1,19 @@
-#Wed Apr 21 09:23:29 CEST 2021
-precision=4
-scale=1.0
-estbilizationDelay=0
-resolution=0.1
-minValue=-90.0
-defaultSpeed=17.0
-sign_bit=0
-monitorByPosition=false
-minSpeed=17.0
+#Tue Jun 14 10:01:50 CEST 2022
offset=0.0
maxValue=110.0
+precision=4
rotation=false
+scale=1.0
+description=null
+estbilizationDelay=0
maxSpeed=20.0
+resolution=0.1
homingType=None
startRetries=1
+minValue=-90.0
unit=deg
+defaultSpeed=17.0
+sign_bit=0
hasEnable=true
+monitorByPosition=false
+minSpeed=17.0
diff --git a/devices/photon_energy.properties b/devices/photon_energy.properties
index c54d98f..8c98ea3 100644
--- a/devices/photon_energy.properties
+++ b/devices/photon_energy.properties
@@ -1,10 +1,11 @@
-#Fri Nov 12 15:14:31 CET 2021
+#Tue Jun 14 10:01:50 CEST 2022
+minValue=0.0
+unit=eV
offset=0.0
maxValue=2000.0
rotation=false
precision=-1
-scale=1.0
-resolution=NaN
-minValue=0.0
-unit=eV
sign_bit=0
+scale=1.0
+description=null
+resolution=NaN
diff --git a/devices/raw_image.properties b/devices/raw_image.properties
new file mode 100644
index 0000000..7615bce
--- /dev/null
+++ b/devices/raw_image.properties
@@ -0,0 +1,20 @@
+#Tue Jun 14 14:48:48 CEST 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/scienta Theta Y step size.properties b/devices/scienta Theta Y step size.properties
index a19ab0d..324bec8 100644
--- a/devices/scienta Theta Y step size.properties
+++ b/devices/scienta Theta Y step size.properties
@@ -1,4 +1,4 @@
-#Mon Aug 30 11:34:39 CEST 2021
+#Tue Jun 14 10:01:50 CEST 2022
minValue=NaN
unit=
offset=0.0
@@ -6,4 +6,5 @@ maxValue=NaN
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/scienta center Theta X.properties b/devices/scienta center Theta X.properties
index cb39e62..268fb12 100644
--- a/devices/scienta center Theta X.properties
+++ b/devices/scienta center Theta X.properties
@@ -1,4 +1,4 @@
-#Mon Aug 30 16:06:28 CEST 2021
+#Tue Jun 14 10:01:50 CEST 2022
minValue=0.0
unit=
offset=0.0
@@ -6,4 +6,5 @@ maxValue=0.0
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/scienta center Theta Y.properties b/devices/scienta center Theta Y.properties
index a19ab0d..324bec8 100644
--- a/devices/scienta center Theta Y.properties
+++ b/devices/scienta center Theta Y.properties
@@ -1,4 +1,4 @@
-#Mon Aug 30 11:34:39 CEST 2021
+#Tue Jun 14 10:01:50 CEST 2022
minValue=NaN
unit=
offset=0.0
@@ -6,4 +6,5 @@ maxValue=NaN
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/scienta center energy.properties b/devices/scienta center energy.properties
index ffeb199..20dbb4d 100644
--- a/devices/scienta center energy.properties
+++ b/devices/scienta center energy.properties
@@ -1,4 +1,4 @@
-#Mon Aug 30 10:57:12 CEST 2021
+#Tue Jun 14 10:01:50 CEST 2022
minValue=-2000.0
unit=
offset=0.0
@@ -6,4 +6,5 @@ maxValue=2000.0
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/scienta excitation energy.properties b/devices/scienta excitation energy.properties
index 3f135c6..268fb12 100644
--- a/devices/scienta excitation energy.properties
+++ b/devices/scienta excitation energy.properties
@@ -1,4 +1,4 @@
-#Mon Aug 30 12:16:20 CEST 2021
+#Tue Jun 14 10:01:50 CEST 2022
minValue=0.0
unit=
offset=0.0
@@ -6,4 +6,5 @@ maxValue=0.0
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/scienta exposure time.properties b/devices/scienta exposure time.properties
new file mode 100644
index 0000000..ba52ece
--- /dev/null
+++ b/devices/scienta exposure time.properties
@@ -0,0 +1,10 @@
+#Tue Jun 14 10:01:50 CEST 2022
+minValue=0.0
+unit=s
+offset=0.0
+maxValue=10000.0
+precision=3
+sign_bit=0
+scale=1.0
+description=null
+resolution=NaN
diff --git a/devices/scienta high Theta Y.properties b/devices/scienta high Theta Y.properties
index a19ab0d..324bec8 100644
--- a/devices/scienta high Theta Y.properties
+++ b/devices/scienta high Theta Y.properties
@@ -1,4 +1,4 @@
-#Mon Aug 30 11:34:39 CEST 2021
+#Tue Jun 14 10:01:50 CEST 2022
minValue=NaN
unit=
offset=0.0
@@ -6,4 +6,5 @@ maxValue=NaN
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/scienta high energy.properties b/devices/scienta high energy.properties
index ffeb199..20dbb4d 100644
--- a/devices/scienta high energy.properties
+++ b/devices/scienta high energy.properties
@@ -1,4 +1,4 @@
-#Mon Aug 30 10:57:12 CEST 2021
+#Tue Jun 14 10:01:50 CEST 2022
minValue=-2000.0
unit=
offset=0.0
@@ -6,4 +6,5 @@ maxValue=2000.0
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/scienta low Theta Y.properties b/devices/scienta low Theta Y.properties
index a19ab0d..324bec8 100644
--- a/devices/scienta low Theta Y.properties
+++ b/devices/scienta low Theta Y.properties
@@ -1,4 +1,4 @@
-#Mon Aug 30 11:34:39 CEST 2021
+#Tue Jun 14 10:01:50 CEST 2022
minValue=NaN
unit=
offset=0.0
@@ -6,4 +6,5 @@ maxValue=NaN
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/scienta low energy.properties b/devices/scienta low energy.properties
index ffeb199..20dbb4d 100644
--- a/devices/scienta low energy.properties
+++ b/devices/scienta low energy.properties
@@ -1,4 +1,4 @@
-#Mon Aug 30 10:57:12 CEST 2021
+#Tue Jun 14 10:01:50 CEST 2022
minValue=-2000.0
unit=
offset=0.0
@@ -6,4 +6,5 @@ maxValue=2000.0
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/scienta step size.properties b/devices/scienta step size.properties
index a33ca1b..324bec8 100644
--- a/devices/scienta step size.properties
+++ b/devices/scienta step size.properties
@@ -1,4 +1,4 @@
-#Mon Aug 30 10:16:07 CEST 2021
+#Tue Jun 14 10:01:50 CEST 2022
minValue=NaN
unit=
offset=0.0
@@ -6,4 +6,5 @@ maxValue=NaN
precision=3
sign_bit=0
scale=1.0
+description=null
resolution=NaN
diff --git a/devices/tcmp.properties b/devices/tcmp.properties
index ccabaf2..72b64f9 100644
--- a/devices/tcmp.properties
+++ b/devices/tcmp.properties
@@ -1,6 +1,7 @@
-#Mon Sep 27 17:22:53 CEST 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=mbar
offset=0.0
precision=12
sign_bit=0
scale=1.0
+description=null
diff --git a/devices/temp_boot1.properties b/devices/temp_boot1.properties
index 154ff95..6142587 100644
--- a/devices/temp_boot1.properties
+++ b/devices/temp_boot1.properties
@@ -1,6 +1,7 @@
-#Mon Sep 27 17:22:53 CEST 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=K
offset=0.0
precision=2
sign_bit=0
scale=1.0
+description=null
diff --git a/devices/temp_boot2.properties b/devices/temp_boot2.properties
index 154ff95..6142587 100644
--- a/devices/temp_boot2.properties
+++ b/devices/temp_boot2.properties
@@ -1,6 +1,7 @@
-#Mon Sep 27 17:22:53 CEST 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=K
offset=0.0
precision=2
sign_bit=0
scale=1.0
+description=null
diff --git a/devices/temp_cryopump.properties b/devices/temp_cryopump.properties
index 154ff95..6142587 100644
--- a/devices/temp_cryopump.properties
+++ b/devices/temp_cryopump.properties
@@ -1,6 +1,7 @@
-#Mon Sep 27 17:22:53 CEST 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=K
offset=0.0
precision=2
sign_bit=0
scale=1.0
+description=null
diff --git a/devices/temp_cryostat.properties b/devices/temp_cryostat.properties
index 3444f5b..6142587 100644
--- a/devices/temp_cryostat.properties
+++ b/devices/temp_cryostat.properties
@@ -1,6 +1,7 @@
-#Mon Sep 27 17:07:51 CEST 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=K
offset=0.0
precision=2
sign_bit=0
scale=1.0
+description=null
diff --git a/devices/temp_headmech.properties b/devices/temp_headmech.properties
index 154ff95..6142587 100644
--- a/devices/temp_headmech.properties
+++ b/devices/temp_headmech.properties
@@ -1,6 +1,7 @@
-#Mon Sep 27 17:22:53 CEST 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=K
offset=0.0
precision=2
sign_bit=0
scale=1.0
+description=null
diff --git a/devices/temp_sample1.properties b/devices/temp_sample1.properties
index 154ff95..6142587 100644
--- a/devices/temp_sample1.properties
+++ b/devices/temp_sample1.properties
@@ -1,6 +1,7 @@
-#Mon Sep 27 17:22:53 CEST 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=K
offset=0.0
precision=2
sign_bit=0
scale=1.0
+description=null
diff --git a/devices/temp_sample2.properties b/devices/temp_sample2.properties
index 154ff95..6142587 100644
--- a/devices/temp_sample2.properties
+++ b/devices/temp_sample2.properties
@@ -1,6 +1,7 @@
-#Mon Sep 27 17:22:53 CEST 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=K
offset=0.0
precision=2
sign_bit=0
scale=1.0
+description=null
diff --git a/devices/temp_shield.properties b/devices/temp_shield.properties
index 154ff95..6142587 100644
--- a/devices/temp_shield.properties
+++ b/devices/temp_shield.properties
@@ -1,6 +1,7 @@
-#Mon Sep 27 17:22:53 CEST 2021
+#Tue Jun 14 10:01:51 CEST 2022
unit=K
offset=0.0
precision=2
sign_bit=0
scale=1.0
+description=null
diff --git a/devices/theta.properties b/devices/theta.properties
index 05d4ff3..6735dd6 100644
--- a/devices/theta.properties
+++ b/devices/theta.properties
@@ -1,18 +1,19 @@
-#Wed Apr 21 09:23:36 CEST 2021
-precision=4
-scale=1.0
-estbilizationDelay=0
-resolution=0.05
-minValue=-95.0
-defaultSpeed=2.5
-sign_bit=0
-monitorByPosition=false
-minSpeed=0.5
+#Tue Jun 14 10:01:50 CEST 2022
offset=0.0
maxValue=185.0
+precision=4
rotation=false
+scale=1.0
+description=null
+estbilizationDelay=0
maxSpeed=5.0
+resolution=0.05
homingType=None
startRetries=1
+minValue=-95.0
unit=deg
+defaultSpeed=2.5
+sign_bit=0
hasEnable=true
+monitorByPosition=false
+minSpeed=0.5
diff --git a/devices/tilt.properties b/devices/tilt.properties
index 412c3a4..8a754a5 100644
--- a/devices/tilt.properties
+++ b/devices/tilt.properties
@@ -1,18 +1,19 @@
-#Wed Apr 21 09:23:40 CEST 2021
-precision=4
-scale=1.0
-estbilizationDelay=0
-resolution=0.1
-minValue=-100.0
-defaultSpeed=20.0
-sign_bit=0
-monitorByPosition=false
-minSpeed=17.0
+#Tue Jun 14 10:01:50 CEST 2022
offset=0.0
maxValue=100.0
+precision=4
rotation=false
+scale=1.0
+description=null
+estbilizationDelay=0
maxSpeed=20.0
+resolution=0.1
homingType=None
startRetries=1
+minValue=-100.0
unit=deg
+defaultSpeed=20.0
+sign_bit=0
hasEnable=true
+monitorByPosition=false
+minSpeed=17.0
diff --git a/devices/tilt_correction.properties b/devices/tilt_correction.properties
new file mode 100644
index 0000000..1edcace
--- /dev/null
+++ b/devices/tilt_correction.properties
@@ -0,0 +1,18 @@
+#Thu Jun 02 10:50:10 CEST 2022
+slave2Positions=null
+offset=0.0
+maxValue=NaN
+slave5Positions=null
+rotation=false
+precision=-1
+scale=1.0
+slave4Positions=null
+resolution=NaN
+mode=LINEAR
+minValue=NaN
+unit=null
+slave1Positions=null
+slave3Positions=null
+sign_bit=0
+masterPositions=null
+slave6Positions=null
diff --git a/devices/x.properties b/devices/x.properties
index b3fe9d4..b4c93cf 100644
--- a/devices/x.properties
+++ b/devices/x.properties
@@ -1,18 +1,19 @@
-#Wed Apr 21 09:23:04 CEST 2021
-precision=4
-scale=1.0
-estbilizationDelay=0
-resolution=0.005
-minValue=-7.0
-defaultSpeed=0.8
-sign_bit=0
-monitorByPosition=false
-minSpeed=0.6
+#Tue Jun 14 10:01:50 CEST 2022
offset=0.0
maxValue=7.0
+precision=4
rotation=false
+scale=1.0
+description=null
+estbilizationDelay=0
maxSpeed=5.0
+resolution=0.005
homingType=None
startRetries=1
+minValue=-7.0
unit=mm
+defaultSpeed=0.8
+sign_bit=0
hasEnable=true
+monitorByPosition=false
+minSpeed=0.6
diff --git a/devices/y.properties b/devices/y.properties
index b020c24..6672205 100644
--- a/devices/y.properties
+++ b/devices/y.properties
@@ -1,18 +1,19 @@
-#Wed Apr 21 09:23:10 CEST 2021
-precision=4
-scale=1.0
-estbilizationDelay=0
-resolution=0.005
-minValue=-6.8896
-defaultSpeed=0.8
-sign_bit=0
-monitorByPosition=false
-minSpeed=0.6
+#Tue Jun 14 10:01:50 CEST 2022
offset=0.0
maxValue=2.7204000000000006
+precision=4
rotation=false
+scale=1.0
+description=null
+estbilizationDelay=0
maxSpeed=5.0
+resolution=0.005
homingType=None
startRetries=1
+minValue=-6.8896
unit=mm
+defaultSpeed=0.8
+sign_bit=0
hasEnable=true
+monitorByPosition=false
+minSpeed=0.6
diff --git a/devices/z.properties b/devices/z.properties
index aed917c..047307b 100644
--- a/devices/z.properties
+++ b/devices/z.properties
@@ -1,18 +1,19 @@
-#Wed Apr 21 09:23:23 CEST 2021
-precision=4
-scale=1.0
-estbilizationDelay=0
-resolution=0.005
-minValue=-10.0
-defaultSpeed=2.0
-sign_bit=0
-monitorByPosition=false
-minSpeed=0.5
+#Tue Jun 14 10:01:50 CEST 2022
offset=0.0
maxValue=600.0
+precision=4
rotation=false
+scale=1.0
+description=null
+estbilizationDelay=0
maxSpeed=8.0
+resolution=0.005
homingType=None
startRetries=1
+minValue=-10.0
unit=mm
+defaultSpeed=2.0
+sign_bit=0
hasEnable=true
+monitorByPosition=false
+minSpeed=0.5
diff --git a/extensions/Scienta.jar b/extensions/Scienta.jar
index 6a5499f..0a9fd18 100644
Binary files a/extensions/Scienta.jar and b/extensions/Scienta.jar differ
diff --git a/plugins/SIStem.form b/plugins/SIStem.form
index af66748..4d6fd86 100644
--- a/plugins/SIStem.form
+++ b/plugins/SIStem.form
@@ -144,7 +144,7 @@
-
+
@@ -179,7 +179,7 @@
-
+
@@ -200,24 +200,26 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -229,24 +231,28 @@
-
+
+
-
+
+
+
+
-
-
+
+
-
+
@@ -296,6 +302,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -313,24 +351,26 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -341,25 +381,29 @@
+
-
+
+
-
+
-
+
+
-
+
+
-
+
@@ -409,6 +453,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -427,7 +503,9 @@
-
+
+
+
@@ -438,7 +516,8 @@
-
+
+
@@ -457,6 +536,14 @@
+
+
+
+
+
+
+
+
@@ -481,12 +568,19 @@
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
+
@@ -496,24 +590,28 @@
-
+
+
-
+
+
-
+
+
-
+
+
-
+
@@ -563,11 +661,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -580,41 +710,50 @@
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
@@ -622,49 +761,67 @@
+
-
-
-
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
-
-
-
-
+
-
+
@@ -678,7 +835,8 @@
-
+
+
@@ -693,43 +851,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -773,6 +894,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -790,36 +1013,40 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
+
+
-
+
@@ -861,8 +1088,15 @@
+
+
-
+
+
+
+
+
+
@@ -944,6 +1178,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -966,7 +1228,7 @@
-
+
@@ -980,7 +1242,7 @@
-
+
@@ -1059,11 +1321,11 @@
-
+
-
+
-
+
@@ -1072,7 +1334,7 @@
-
+
@@ -1191,13 +1453,13 @@
-
+
-
+
-
+
-
+
@@ -1207,7 +1469,7 @@
-
+
diff --git a/plugins/SIStem.java b/plugins/SIStem.java
index bdfac5b..0f4dff0 100644
--- a/plugins/SIStem.java
+++ b/plugins/SIStem.java
@@ -17,6 +17,7 @@ import ch.psi.pshell.plot.MatrixPlotSeries;
import ch.psi.pshell.plot.Plot;
import ch.psi.pshell.swing.DataPanel;
import ch.psi.pshell.swing.DevicePanel;
+import ch.psi.pshell.swing.DeviceValuePanel;
import ch.psi.pshell.ui.App;
import ch.psi.pshell.ui.PanelProcessor;
import ch.psi.pshell.ui.Preferences;
@@ -57,6 +58,7 @@ import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
+import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
@@ -84,7 +86,6 @@ public class SIStem extends PanelProcessor {
final RegisterPanel[] scientaPanels;
final DiscretePositionerSelector[] scientaCombos;
final JComboBox[] deviceCombos;
- final JTextField[] scientaRangeFields;
String[] additionalPositioners ;
boolean intialized;
boolean startButtonPressed;
@@ -193,14 +194,15 @@ public class SIStem extends PanelProcessor {
});
scientaPanels = new RegisterPanel[]{textLowEnergy,textCenterEnergy, textHighEnergy, textStepEnergy,
- textLowThetaY, textCenterThetaY, textHighThetaY, textStepThetaY, textCenterThetaX, textSlices, textChannels, textExposureDev};
- scientaRangeFields = new JTextField[]{textXChannelMax, textXChannelMin, textYChannelMax, textYChannelMin};
+ textLowThetaY, textCenterThetaY, textHighThetaY, textStepThetaY, textCenterThetaX, textSlices, textChannels, textExposureDev,
+ textMinX, textSizeX, textMinY, textSizeY, textSweeps};
scientaCombos = new DiscretePositionerSelector[]{comboPass, comboAcquisition, comboEnergy, comboLens, comboDetMode};
- deviceCombos = new JComboBox[]{comboPol, comboGrating};
+ deviceCombos = new JComboBox[]{comboPol, comboGrating, comboAnalyserSlit};
buttonData.setVisible(isDetached());
detectorPlot.getAxis(Plot.AxisId.X).setLabel("X-Scale (energy)");
detectorPlot.getAxis(Plot.AxisId.Y).setLabel("Y-Scale (distance or angle)");
+ detectorPlot.getAxis(Plot.AxisId.Y).setInverted(true);
comboLens.getComboBox().addActionListener((java.awt.event.ActionEvent evt) -> {
updateLens();
@@ -213,8 +215,24 @@ public class SIStem extends PanelProcessor {
}
});
+ for (Component panel:getDeviceValuePanels()){
+ try {
+ JLabel label = ((DeviceValuePanel)panel).getLabel();
+ label.setFont(label.getFont().deriveFont(9.0f));
+
+ } catch (Exception ex) {
+ showException(ex);
+ }
+ }
+
clear();
- //startTimer(1000, 1000);
+ startTimer(1000, 1000);
+ }
+
+ Component[] getDeviceValuePanels(){
+ return Arr.append(SwingUtils.getComponentsByType(panelAnalyser, DeviceValuePanel.class),
+ SwingUtils.getComponentsByType(panelDetector, DeviceValuePanel.class));
+
}
void addDevice(ProcessVariable dev, DefaultTableModel model, int row, Object[] data) {
@@ -274,8 +292,16 @@ public class SIStem extends PanelProcessor {
} catch (Exception ex) {
showException(ex);
}
- }
+ }
+ for (Component panel:getDeviceValuePanels()){
+ try {
+ ((DeviceValuePanel)panel).setDevice((Device) eval(panel.getName(), true));
+ } catch (Exception ex) {
+ showException(ex);
+ }
+ }
+
try {
Device curStep = (Device) eval("scienta.currentStep", true);
curStep.addListener(progressListener);
@@ -294,7 +320,9 @@ public class SIStem extends PanelProcessor {
try {
String[] mode_position = (String[]) eval("id_mode.getPositions()", true);
String[] grating_position = (String[]) eval("grating.getPositions()", true);
+ String[] analyser_slit_position = (String[]) eval("analyser_slit.getPositions()", true);
List add_pos= (List) eval("get_additional_positioners()", true);
+
additionalPositioners = new String[add_pos.size()];
for (int i=0; i< add_pos.size(); i++){
additionalPositioners[i]=add_pos.get(i).getName();
@@ -308,6 +336,11 @@ public class SIStem extends PanelProcessor {
comboGrating.setModel(new DefaultComboBoxModel(grating_position));
SwingUtils.insertCombo(comboGrating, "", 0);
comboGrating.setSelectedIndex(0);
+
+
+ comboAnalyserSlit.setModel(new DefaultComboBoxModel(analyser_slit_position));
+ SwingUtils.insertCombo(comboAnalyserSlit, "", 0);
+ comboAnalyserSlit.setSelectedIndex(0);
} catch (Exception ex) {
ex.printStackTrace();
Logger.getLogger(SIStem.class.getName()).log(Level.SEVERE, null, ex);
@@ -342,12 +375,16 @@ public class SIStem extends PanelProcessor {
public void onExecutedFile(String fileName, Object result) {
}
- //@Override
- //public void onTimer() {
- // if (getState().isInitialized()){
- // updateTime();
- // }
- //}
+ @Override
+ public void onTimer() {
+ if (getState().isInitialized()){
+ //updateTime();
+ if (panelDetector.isShowing()){
+ //System.out.println("..");
+ updateDetectorPlot();
+ }
+ }
+ }
//Callback to perform update - in event thread
@Override
@@ -437,14 +474,9 @@ public class SIStem extends PanelProcessor {
steps[i] = (Integer) modelScanned.getValueAt(i, 3) - 1;
}
- Integer[] range = new Integer[4];
- for (int i = 0; i < scientaRangeFields.length; i++) {
- range[i] = scientaRangeFields[i].getText().isBlank() ? null : Integer.valueOf(scientaRangeFields[i].getText().trim());
- }
Map config = new HashMap();
config.put("PRE_ACTIONS", preActions);
- config.put("RANGE", range.equals(new Integer[]{null, null, null, null}) ? new ArrayList() : Arr.toList(range));
config.put("POSITIONERS", positioners);
config.put("START", start);
config.put("STOP", stop);
@@ -489,6 +521,13 @@ public class SIStem extends PanelProcessor {
return null;
}
+ Map readConfig(String fileName) throws IOException{
+ Path path = Paths.get(fileName);
+ String json = new String(Files.readAllBytes(path));
+ Map config = (Map) JsonSerializer.decode(json, Map.class);
+ return config;
+ }
+
@Override
public void open(String fileName) throws IOException {
if (!intialized){
@@ -503,12 +542,8 @@ public class SIStem extends PanelProcessor {
clear();
try{
if (fileName != null) {
- Path path = Paths.get(fileName);
- String json = new String(Files.readAllBytes(path));
- currentFile = path.toFile();
- Map config = (Map) JsonSerializer.decode(json, Map.class);
-
-
+ Map config = readConfig(fileName);
+ currentFile = new File(fileName);
Map masterAxis = (Map) config.get("MASTER_AXIS");
if (masterAxis!=null){
String name = (String) masterAxis.get("NAME");
@@ -561,11 +596,6 @@ public class SIStem extends PanelProcessor {
break;
}
}
- for (int i = 0; i < range.size(); i++) {
- if (range.get(i) != null) {
- scientaRangeFields[i].setText(String.valueOf(range.get(i)).trim());
- }
- }
Positioner pos = getContext().getDevicePool().getByName(name, Positioner.class);
if (pos != null) {
addDevice(pos, modelFixed, -1, new Object[]{name, preActions.get(name), pos.getUnit()});
@@ -605,13 +635,10 @@ public class SIStem extends PanelProcessor {
combo.setSelectedIndex(0);
}
}
- for (JTextField text : scientaRangeFields) {
- text.setText("");
- }
-
modelFixed.setRowCount(0);
modelScanned.setRowCount(0);
+ /*
String[] DEFAULT_SENSORS = new String[]{"scienta.dataMatrix"};
//String[] DEFAULT_SNAPS = new String[]{"temp_cryostat", "temp_sample1", "temp_headmech", "temp_sample2",
// "temp_boot1", "temp_shield", "temp_boot2", "temp_cryopump",
@@ -620,11 +647,22 @@ public class SIStem extends PanelProcessor {
String[] DEFAULT_DIAGS = getContext().getDevicePool().getAllNamesOrderedByName(Motor.class);
String[] DEFAULT_SNAPS = Arr.remove(getContext().getDevicePool().getAllNamesOrderedByName(ReadonlyProcessVariable.class), DEFAULT_DIAGS);
String[] DEFAULT_MONITORS = new String[]{"current"};
-
setDevices(textSensors, Arr.toList(DEFAULT_SENSORS));
setDevices(textSnapshots, Arr.toList(DEFAULT_SNAPS));
setDevices(textDiagnostics, Arr.toList(DEFAULT_DIAGS));
setDevices(textMonitors, Arr.toList(DEFAULT_MONITORS));
+ */
+
+ try{
+ Map config = readConfig(getContext().getSetup().expandPath(getHomePath()+"/templates/Default.json"));
+ setDevices(textSensors, (List) config.get("SENSORS"));
+ setDevices(textSnapshots, (List) config.get("SNAPS"));
+ setDevices(textDiagnostics, (List) config.get("DIAGS"));
+ setDevices(textMonitors, (List) config.get("MONITORS"));
+ } catch (Exception ex){
+ Logger.getLogger(SIStem.class.getName()).log(Level.SEVERE, null, ex);
+ }
+
initInactive();
spinnerLatency.setValue(0.0);
@@ -783,7 +821,7 @@ public class SIStem extends PanelProcessor {
if (getContext().getDevicePool().getByName(name)!=null){
throw new Exception("Device name in use");
}
- String[] motorNames = getContext().getDevicePool().getAllNamesOrderedByName(Motor.class);
+ String[] motorNames = getContext().getDevicePool().getAllNamesOrderedByName(Positioner.class);
String master = getString("Enter master motor:", motorNames, null);
if (master!=null){
ArrayList slaves = new ArrayList<>();
@@ -899,21 +937,6 @@ public class SIStem extends PanelProcessor {
}
}
}
-
- List defined = new ArrayList();
- for (JTextField text : scientaRangeFields) {
- if (!text.getText().isBlank()) {
- try {
- Integer.valueOf(text.getText().trim());
- } catch (Exception ex) {
- throw new IllegalArgumentException("Invalid value in " + text.getName());
- }
- }
- defined.add(text.getText().isBlank() ? false : true);
- }
- if ((defined.get(0) != defined.get(1)) || (defined.get(2) != defined.get(3))) {
- throw new IllegalArgumentException("Invalid detector range");
- }
}
void checkBeamline() {
@@ -934,27 +957,8 @@ public class SIStem extends PanelProcessor {
new Thread(() -> {
try {
int[] sensor = (int[]) eval("scienta.getSensorSize()", true);
- int[] _roi = (int[]) eval("scienta.getROI()", true);
+ int[] roi = (int[]) eval("scienta.getROI()", true);
SwingUtilities.invokeAndWait(() -> {
- int[] roi = _roi;
- roi = new int[]{roi[0], roi[1], roi[2] + roi[0], roi[3] + roi[1]};//Change to xmin, ymin, xmax, ymax
- try {
- roi[0] = Integer.valueOf(textXChannelMin.getText());
- } catch (Exception ex) {
- }
- try {
- roi[1] = Integer.valueOf(textYChannelMin.getText());
- } catch (Exception ex) {
- }
- try {
- roi[2] = Integer.valueOf(textXChannelMax.getText());
- } catch (Exception ex) {
- }
- try {
- roi[3] = Integer.valueOf(textYChannelMax.getText());
- } catch (Exception ex) {
- }
-
detectorPlot.getAxis(Plot.AxisId.X).setRange(0, sensor[0] - 1);
detectorPlot.getAxis(Plot.AxisId.Y).setRange(0, sensor[1] - 1);
@@ -967,8 +971,8 @@ public class SIStem extends PanelProcessor {
detectorPlot.removeMarker(null);
detectorPlot.addMarker(roi[0], Plot.AxisId.X, "", Color.GREEN);
detectorPlot.addMarker(roi[1], Plot.AxisId.Y, "", Color.GREEN);
- detectorPlot.addMarker(roi[2], Plot.AxisId.X, "", Color.GREEN);
- detectorPlot.addMarker(roi[3], Plot.AxisId.Y, "", Color.GREEN);
+ detectorPlot.addMarker(roi[0]+roi[2], Plot.AxisId.X, "", Color.GREEN);
+ detectorPlot.addMarker(roi[1]+roi[3], Plot.AxisId.Y, "", Color.GREEN);
});
} catch (Exception ex) {
getLogger().log(Level.WARNING, null, ex);
@@ -998,26 +1002,39 @@ public class SIStem extends PanelProcessor {
*/
void plotImage() throws Exception {
double[][] arr = new double[][]{new double[]{Double.NaN}};
- int[] sensor = (int[]) eval("scienta.getSensorSize()", true);
- int[] roi = (int[]) eval("scienta.getROI()", true);
+
+
try {
+ int[] sensor = (int[]) eval("scienta.getSensorSize()", true);
+ int[] roi = (int[]) eval("scienta.getROI()", true);
Object data = eval("scienta.getDataMatrix().take()", true);
- if (data != null) {
+ if (data != null) {
double[][] a = (double[][]) Convert.toDouble(data);
- double scaleX = roi[2] / a[0].length;
- double scaleY = roi[3] / a.length;
- arr = new double[sensor[0]][sensor[1]];
- for (int i = 0; i < a.length; i++) {
- for (int j = 0; j < a[0].length; j++) {
- arr[(int) (scaleY * i) + roi[1]][(int) (scaleX * j) + roi[0]] = a[i][j];
+
+ double scaleX = ((double)(a[0].length))/roi[2];
+ double scaleY = ((double)a.length-1) / roi[3] ;
+
+ arr = new double[sensor[1]][sensor[0]];
+ for (int i = 0; i < sensor[1]; i++) {
+ for (int j = 0; j < sensor[0]; j++) {
+ arr[i][j]=Double.NaN;
}
}
+ for (int i = 0; i();
comboGrating = new javax.swing.JComboBox<>();
+ jLabel34 = new javax.swing.JLabel();
+ textSweeps = new ch.psi.pshell.swing.RegisterPanel();
+ jLabel35 = new javax.swing.JLabel();
+ comboAnalyserSlit = new javax.swing.JComboBox<>();
jPanel6 = new javax.swing.JPanel();
jScrollPane8 = new javax.swing.JScrollPane();
tableMaster = new javax.swing.JTable();
@@ -1242,6 +1286,18 @@ public class SIStem extends PanelProcessor {
textStepEnergy.setName("scienta.energyStepSize"); // NOI18N
+ deviceValuePanel1.setMaximumSize(new java.awt.Dimension(60, 32769));
+ deviceValuePanel1.setName("scienta.lowEnergy.readback"); // NOI18N
+
+ deviceValuePanel2.setMaximumSize(new java.awt.Dimension(60, 32769));
+ deviceValuePanel2.setName("scienta.centerEnergy.readback"); // NOI18N
+
+ deviceValuePanel3.setMaximumSize(new java.awt.Dimension(60, 32769));
+ deviceValuePanel3.setName("scienta.highEnergy.readback"); // NOI18N
+
+ deviceValuePanel4.setMaximumSize(new java.awt.Dimension(60, 32769));
+ deviceValuePanel4.setName("scienta.energyStepSize.readback"); // NOI18N
+
javax.swing.GroupLayout panelEnergyLayout = new javax.swing.GroupLayout(panelEnergy);
panelEnergy.setLayout(panelEnergyLayout);
panelEnergyLayout.setHorizontalGroup(
@@ -1249,20 +1305,23 @@ public class SIStem extends PanelProcessor {
.addGroup(panelEnergyLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelEnergyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelEnergyLayout.createSequentialGroup()
- .addGroup(panelEnergyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel14)
- .addComponent(jLabel12, javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(jLabel13, javax.swing.GroupLayout.Alignment.TRAILING))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(panelEnergyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(textLowEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
- .addComponent(textCenterEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
- .addComponent(textHighEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelEnergyLayout.createSequentialGroup()
- .addComponent(jLabel15)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(textStepEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)))
+ .addGroup(panelEnergyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel14)
+ .addComponent(jLabel12, javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel13, javax.swing.GroupLayout.Alignment.TRAILING))
+ .addComponent(jLabel15))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(panelEnergyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(textStepEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 54, Short.MAX_VALUE)
+ .addComponent(textHighEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 54, Short.MAX_VALUE)
+ .addComponent(textCenterEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 54, Short.MAX_VALUE)
+ .addComponent(textLowEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 54, Short.MAX_VALUE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(panelEnergyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(deviceValuePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+ .addComponent(deviceValuePanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+ .addComponent(deviceValuePanel3, javax.swing.GroupLayout.DEFAULT_SIZE, 41, Short.MAX_VALUE)
+ .addComponent(deviceValuePanel4, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addContainerGap())
);
@@ -1274,22 +1333,28 @@ public class SIStem extends PanelProcessor {
.addContainerGap()
.addGroup(panelEnergyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel12)
- .addComponent(textLowEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(textLowEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelEnergyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel13)
- .addComponent(textCenterEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(textCenterEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelEnergyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
- .addComponent(jLabel14)
- .addComponent(textHighEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(deviceValuePanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(textHighEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel14))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelEnergyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel15)
- .addComponent(textStepEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap(38, Short.MAX_VALUE))
+ .addComponent(textStepEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(92, Short.MAX_VALUE))
);
+ panelEnergyLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel1, deviceValuePanel2, deviceValuePanel3, deviceValuePanel4, textCenterEnergy, textHighEnergy, textLowEnergy, textStepEnergy});
+
panelY.setBorder(javax.swing.BorderFactory.createTitledBorder("ThetaY "));
jLabel17.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
@@ -1312,6 +1377,18 @@ public class SIStem extends PanelProcessor {
textStepThetaY.setName("scienta.thetaYStepSize"); // NOI18N
+ deviceValuePanel6.setMaximumSize(new java.awt.Dimension(60, 32769));
+ deviceValuePanel6.setName("scienta.thetaYStepSize.readback"); // NOI18N
+
+ deviceValuePanel7.setMaximumSize(new java.awt.Dimension(60, 32769));
+ deviceValuePanel7.setName("scienta.lowThetaY.readback"); // NOI18N
+
+ deviceValuePanel8.setMaximumSize(new java.awt.Dimension(60, 32769));
+ deviceValuePanel8.setName("scienta.centerThetaY.readback"); // NOI18N
+
+ deviceValuePanel9.setMaximumSize(new java.awt.Dimension(60, 32769));
+ deviceValuePanel9.setName("scienta.highThetaY.readback"); // NOI18N
+
javax.swing.GroupLayout panelYLayout = new javax.swing.GroupLayout(panelY);
panelY.setLayout(panelYLayout);
panelYLayout.setHorizontalGroup(
@@ -1319,20 +1396,23 @@ public class SIStem extends PanelProcessor {
.addGroup(panelYLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelYLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelYLayout.createSequentialGroup()
- .addGroup(panelYLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel17)
- .addComponent(jLabel19, javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(jLabel18, javax.swing.GroupLayout.Alignment.TRAILING))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(panelYLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(textLowThetaY, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
- .addComponent(textCenterThetaY, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
- .addComponent(textHighThetaY, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelYLayout.createSequentialGroup()
- .addComponent(jLabel20)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(textStepThetaY, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)))
+ .addGroup(panelYLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel17)
+ .addComponent(jLabel19, javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel18, javax.swing.GroupLayout.Alignment.TRAILING))
+ .addComponent(jLabel20))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(panelYLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(textLowThetaY, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+ .addComponent(textCenterThetaY, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+ .addComponent(textHighThetaY, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+ .addComponent(textStepThetaY, javax.swing.GroupLayout.DEFAULT_SIZE, 53, Short.MAX_VALUE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(panelYLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(deviceValuePanel6, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+ .addComponent(deviceValuePanel7, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+ .addComponent(deviceValuePanel8, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+ .addComponent(deviceValuePanel9, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 42, Short.MAX_VALUE))
.addContainerGap())
);
@@ -1343,23 +1423,29 @@ public class SIStem extends PanelProcessor {
.addGroup(panelYLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelYLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(textLowThetaY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel19)
- .addComponent(textLowThetaY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(deviceValuePanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelYLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(textCenterThetaY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel18)
- .addComponent(textCenterThetaY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(deviceValuePanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelYLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel17)
- .addComponent(textHighThetaY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(textHighThetaY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelYLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel20)
- .addComponent(textStepThetaY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap(38, Short.MAX_VALUE))
+ .addComponent(textStepThetaY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(92, Short.MAX_VALUE))
);
+ panelYLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel6, deviceValuePanel7, deviceValuePanel8, deviceValuePanel9, textCenterThetaY, textHighThetaY, textLowThetaY, textStepThetaY});
+
panelX.setBorder(javax.swing.BorderFactory.createTitledBorder("ThetaX"));
jLabel26.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
@@ -1367,6 +1453,9 @@ public class SIStem extends PanelProcessor {
textCenterThetaX.setName("scienta.centerThetaX"); // NOI18N
+ deviceValuePanel5.setMaximumSize(new java.awt.Dimension(60, 32769));
+ deviceValuePanel5.setName("scienta.centerThetaX.readback"); // NOI18N
+
javax.swing.GroupLayout panelXLayout = new javax.swing.GroupLayout(panelX);
panelX.setLayout(panelXLayout);
panelXLayout.setHorizontalGroup(
@@ -1375,7 +1464,9 @@ public class SIStem extends PanelProcessor {
.addContainerGap()
.addComponent(jLabel26)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(textCenterThetaX, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
+ .addComponent(textCenterThetaX, javax.swing.GroupLayout.DEFAULT_SIZE, 55, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(deviceValuePanel5, javax.swing.GroupLayout.DEFAULT_SIZE, 40, Short.MAX_VALUE)
.addContainerGap())
);
panelXLayout.setVerticalGroup(
@@ -1384,10 +1475,13 @@ public class SIStem extends PanelProcessor {
.addGap(36, 36, 36)
.addGroup(panelXLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel26)
- .addComponent(textCenterThetaX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap(89, Short.MAX_VALUE))
+ .addComponent(textCenterThetaX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(143, Short.MAX_VALUE))
);
+ panelXLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel5, textCenterThetaX});
+
jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("Parameters"));
jLabel29.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
@@ -1410,6 +1504,18 @@ public class SIStem extends PanelProcessor {
jLabel28.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel28.setText("Acquisition:");
+ deviceValuePanel10.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel10.setName("scienta.lensModeDev.readback"); // NOI18N
+
+ deviceValuePanel11.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel11.setName("scienta.energyModeDev.readback"); // NOI18N
+
+ deviceValuePanel12.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel12.setName("scienta.acquisitionModeDev.readback"); // NOI18N
+
+ deviceValuePanel13.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel13.setName("scienta.passEnergyDev.readback"); // NOI18N
+
javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
jPanel10.setLayout(jPanel10Layout);
jPanel10Layout.setHorizontalGroup(
@@ -1423,10 +1529,16 @@ public class SIStem extends PanelProcessor {
.addComponent(jLabel30))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(comboLens, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)
- .addComponent(comboEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)
- .addComponent(comboAcquisition, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)
- .addComponent(comboPass, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE))
+ .addComponent(comboLens, javax.swing.GroupLayout.DEFAULT_SIZE, 136, Short.MAX_VALUE)
+ .addComponent(comboEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 136, Short.MAX_VALUE)
+ .addComponent(comboAcquisition, javax.swing.GroupLayout.DEFAULT_SIZE, 136, Short.MAX_VALUE)
+ .addComponent(comboPass, javax.swing.GroupLayout.DEFAULT_SIZE, 136, Short.MAX_VALUE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(deviceValuePanel10, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+ .addComponent(deviceValuePanel11, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+ .addComponent(deviceValuePanel12, javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE)
+ .addComponent(deviceValuePanel13, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addContainerGap())
);
@@ -1438,27 +1550,39 @@ public class SIStem extends PanelProcessor {
.addContainerGap()
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel24)
- .addComponent(comboPass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(comboPass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel28)
- .addComponent(comboAcquisition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(comboAcquisition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel29)
- .addComponent(comboEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(comboEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel30)
- .addComponent(comboLens, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap(18, Short.MAX_VALUE))
+ .addComponent(comboLens, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(72, Short.MAX_VALUE))
);
- javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
- jPanel4.setLayout(jPanel4Layout);
- jPanel4Layout.setHorizontalGroup(
- jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
+ jPanel10Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboPass, deviceValuePanel13});
+
+ jPanel10Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboAcquisition, deviceValuePanel12});
+
+ jPanel10Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboEnergy, deviceValuePanel11});
+
+ jPanel10Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboLens, deviceValuePanel10});
+
+ javax.swing.GroupLayout panelAnalyserLayout = new javax.swing.GroupLayout(panelAnalyser);
+ panelAnalyser.setLayout(panelAnalyserLayout);
+ panelAnalyserLayout.setHorizontalGroup(
+ panelAnalyserLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelAnalyserLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
@@ -1469,26 +1593,27 @@ public class SIStem extends PanelProcessor {
.addComponent(panelY, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
- jPanel4Layout.setVerticalGroup(
- jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel4Layout.createSequentialGroup()
+ panelAnalyserLayout.setVerticalGroup(
+ panelAnalyserLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelAnalyserLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelAnalyserLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panelY, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(panelX, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(panelEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap(147, Short.MAX_VALUE))
+ .addContainerGap(191, Short.MAX_VALUE))
);
- jPanel4Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jPanel10, panelEnergy, panelX, panelY});
+ panelAnalyserLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jPanel10, panelEnergy, panelX, panelY});
- jTabbedPane1.addTab("Analyzer", jPanel4);
+ jTabbedPane1.addTab("Analyzer", panelAnalyser);
jLabel16.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel16.setText("Mode:");
- jLabel9.setText("X Channel Range:");
+ jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel9.setText("Min X:");
jLabel25.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel25.setText("Slices:");
@@ -1496,36 +1621,6 @@ public class SIStem extends PanelProcessor {
jLabel27.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel27.setText("Channels:");
- textXChannelMin.setName("x_channel_min"); // NOI18N
- textXChannelMin.addKeyListener(new java.awt.event.KeyAdapter() {
- public void keyReleased(java.awt.event.KeyEvent evt) {
- roiChanged(evt);
- }
- });
-
- textXChannelMax.setName("x_channel_max"); // NOI18N
- textXChannelMax.addKeyListener(new java.awt.event.KeyAdapter() {
- public void keyReleased(java.awt.event.KeyEvent evt) {
- roiChanged(evt);
- }
- });
-
- jLabel10.setText("Y Channel Range:");
-
- textYChannelMin.setName("y_channel_min"); // NOI18N
- textYChannelMin.addKeyListener(new java.awt.event.KeyAdapter() {
- public void keyReleased(java.awt.event.KeyEvent evt) {
- roiChanged(evt);
- }
- });
-
- textYChannelMax.setName("y_channel_max"); // NOI18N
- textYChannelMax.addKeyListener(new java.awt.event.KeyAdapter() {
- public void keyReleased(java.awt.event.KeyEvent evt) {
- roiChanged(evt);
- }
- });
-
detectorPlot.setLegendVisible(false);
detectorPlot.setTitle("");
@@ -1547,87 +1642,161 @@ public class SIStem extends PanelProcessor {
textExposureDev.setName("scienta.exposureDev"); // NOI18N
- javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
- jPanel5.setLayout(jPanel5Layout);
- jPanel5Layout.setHorizontalGroup(
- jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel5Layout.createSequentialGroup()
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel5Layout.createSequentialGroup()
- .addContainerGap(13, Short.MAX_VALUE)
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel16)
- .addComponent(jLabel31)
- .addComponent(jLabel9)
- .addComponent(jLabel27)
- .addComponent(jLabel10)
- .addComponent(jLabel25))
+ deviceValuePanel14.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel14.setName("scienta.detectorModeDev.readback"); // NOI18N
+
+ deviceValuePanel15.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel15.setName("scienta.exposureDev.readback"); // NOI18N
+
+ deviceValuePanel18.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel18.setName("scienta.channelsReadback"); // NOI18N
+
+ deviceValuePanel21.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel21.setName("scienta.slicesReadback"); // NOI18N
+
+ textMinX.setName("scienta.minX"); // NOI18N
+
+ deviceValuePanel22.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel22.setName("scienta.minXReadback"); // NOI18N
+
+ jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel11.setText("Size X:");
+
+ textSizeX.setName("scienta.sizeX"); // NOI18N
+
+ deviceValuePanel23.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel23.setName("scienta.sizeXReadback"); // NOI18N
+
+ jLabel32.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel32.setText("Min Y:");
+
+ jLabel33.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel33.setText("Size Y:");
+
+ textMinY.setName("scienta.minY"); // NOI18N
+
+ deviceValuePanel24.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel24.setName("scienta.minYReadback"); // NOI18N
+
+ textSizeY.setName("scienta.sizeY"); // NOI18N
+
+ deviceValuePanel25.setMaximumSize(new java.awt.Dimension(120, 32769));
+ deviceValuePanel25.setName("scienta.sizeYReadback"); // NOI18N
+
+ javax.swing.GroupLayout panelDetectorLayout = new javax.swing.GroupLayout(panelDetector);
+ panelDetector.setLayout(panelDetectorLayout);
+ panelDetectorLayout.setHorizontalGroup(
+ panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelDetectorLayout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(butonPlot)
+ .addGroup(panelDetectorLayout.createSequentialGroup()
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel33, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addComponent(jLabel16, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel31, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel9, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel27, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel25, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel11, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel32, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(textChannels, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(jPanel5Layout.createSequentialGroup()
- .addComponent(textYChannelMin, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(textSlices, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
+ .addComponent(textMinX, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
+ .addComponent(comboDetMode, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
+ .addComponent(textExposureDev, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
+ .addComponent(textSizeX, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
+ .addComponent(textChannels, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
+ .addComponent(textMinY, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
+ .addComponent(textSizeY, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(deviceValuePanel21, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel25, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel24, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel18, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel23, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel22, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel15, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel14, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE))))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(detectorPlot, javax.swing.GroupLayout.PREFERRED_SIZE, 563, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap())
+ );
+
+ panelDetectorLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel16, jLabel25, jLabel27, jLabel31, jLabel9});
+
+ panelDetectorLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboDetMode, textChannels, textExposureDev, textMinX, textMinY, textSizeX, textSizeY, textSlices});
+
+ panelDetectorLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {deviceValuePanel14, deviceValuePanel15, deviceValuePanel18, deviceValuePanel21, deviceValuePanel22, deviceValuePanel23, deviceValuePanel24, deviceValuePanel25});
+
+ panelDetectorLayout.setVerticalGroup(
+ panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelDetectorLayout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelDetectorLayout.createSequentialGroup()
+ .addGap(0, 0, Short.MAX_VALUE)
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addGroup(panelDetectorLayout.createSequentialGroup()
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(jLabel16)
+ .addComponent(comboDetMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel14, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(textYChannelMax, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addComponent(textSlices, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addGroup(jPanel5Layout.createSequentialGroup()
- .addComponent(textXChannelMin, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(textXChannelMax, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addComponent(comboDetMode, javax.swing.GroupLayout.DEFAULT_SIZE, 0, Short.MAX_VALUE)
- .addComponent(textExposureDev, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE))
- .addGroup(jPanel5Layout.createSequentialGroup()
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(butonPlot)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
- .addComponent(detectorPlot, javax.swing.GroupLayout.DEFAULT_SIZE, 542, Short.MAX_VALUE)
- .addContainerGap())
- );
-
- jPanel5Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel10, jLabel16, jLabel25, jLabel27, jLabel31, jLabel9});
-
- jPanel5Layout.setVerticalGroup(
- jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel5Layout.createSequentialGroup()
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel5Layout.createSequentialGroup()
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(textExposureDev, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel31)))
+ .addComponent(deviceValuePanel15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
- .addComponent(jLabel16)
- .addComponent(comboDetMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(textExposureDev, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel31))
- .addGap(18, 18, 18)
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel9)
- .addComponent(textXChannelMax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(textXChannelMin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(textMinX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel22, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(deviceValuePanel23, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(textSizeX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel11))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel27)
- .addComponent(textChannels, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(18, 18, 18)
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
- .addComponent(jLabel10)
- .addComponent(textYChannelMin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(textYChannelMax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(textChannels, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel18, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(jLabel32)
+ .addComponent(textMinY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel24, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(jLabel33)
+ .addComponent(textSizeY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel25, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(panelDetectorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel25)
- .addComponent(textSlices, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(textSlices, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(deviceValuePanel21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(151, 151, 151)
.addComponent(butonPlot))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(detectorPlot, javax.swing.GroupLayout.DEFAULT_SIZE, 301, Short.MAX_VALUE)))
+ .addComponent(detectorPlot, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
- jTabbedPane1.addTab("Detector", jPanel5);
+ panelDetectorLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboDetMode, deviceValuePanel14});
+
+ panelDetectorLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel21, deviceValuePanel24, deviceValuePanel25, textMinY, textSizeY, textSlices});
+
+ panelDetectorLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel15, textExposureDev});
+
+ panelDetectorLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel18, deviceValuePanel22, deviceValuePanel23, textChannels, textMinX, textSizeX});
+
+ jTabbedPane1.addTab("Detector", panelDetector);
jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel4.setText("Settling Time:");
@@ -1655,41 +1824,59 @@ public class SIStem extends PanelProcessor {
comboGrating.setName("grating"); // NOI18N
+ jLabel34.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel34.setText("Sweeps:");
+
+ textSweeps.setName("scienta.sweeps"); // NOI18N
+
+ jLabel35.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel35.setText("Analyser Slit:");
+
+ comboAnalyserSlit.setName("analyser_slit"); // NOI18N
+
javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
jPanel11.setLayout(jPanel11Layout);
jPanel11Layout.setHorizontalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addGap(151, 151, 151)
- .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel22)
- .addComponent(jLabel8)
- .addComponent(jLabel4)
- .addComponent(jLabel1))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
- .addComponent(spinnerPasses, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(0, 0, Short.MAX_VALUE))
+ .addComponent(jLabel34)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(textSweeps, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel11Layout.createSequentialGroup()
.addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel22)
+ .addComponent(jLabel8)
+ .addComponent(jLabel4)
+ .addComponent(jLabel1))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(spinnerPasses, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(checkCompression)
.addComponent(checkZigzag)
.addComponent(spinnerLatency, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(139, 139, 139)
- .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel21)
- .addComponent(jLabel23))
+ .addComponent(jLabel23)
+ .addComponent(jLabel35))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(comboAnalyserSlit, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(comboPol, 0, 150, Short.MAX_VALUE)
- .addComponent(comboGrating, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addContainerGap(141, Short.MAX_VALUE))))
+ .addComponent(comboGrating, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
+ .addContainerGap(242, Short.MAX_VALUE))
);
- jPanel11Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerLatency, spinnerPasses});
+ jPanel11Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerLatency, spinnerPasses, textSweeps});
- jPanel11Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel1, jLabel22, jLabel4, jLabel8});
+ jPanel11Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel1, jLabel22, jLabel34, jLabel4, jLabel8});
+
+ jPanel11Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel21, jLabel23, jLabel35});
+
+ jPanel11Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboAnalyserSlit, comboGrating, comboPol});
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -1720,8 +1907,14 @@ public class SIStem extends PanelProcessor {
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
- .addComponent(spinnerPasses, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap(177, Short.MAX_VALUE))
+ .addComponent(spinnerPasses, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel35)
+ .addComponent(comboAnalyserSlit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(18, 18, 18)
+ .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(jLabel34)
+ .addComponent(textSweeps, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(234, Short.MAX_VALUE))
);
jTabbedPane1.addTab("Scan", jPanel11);
@@ -1793,7 +1986,7 @@ public class SIStem extends PanelProcessor {
.addComponent(buttonPrivateMasterAxis)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(jPanel6Layout.createSequentialGroup()
- .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 732, Short.MAX_VALUE)
+ .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 836, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(buttonEditMaster, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
@@ -1803,7 +1996,7 @@ public class SIStem extends PanelProcessor {
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 269, Short.MAX_VALUE)
+ .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 367, Short.MAX_VALUE)
.addComponent(buttonEditMaster))
.addGap(13, 13, 13)
.addComponent(buttonPrivateMasterAxis)
@@ -1905,18 +2098,18 @@ public class SIStem extends PanelProcessor {
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(0, 0, 0)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 223, Short.MAX_VALUE)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 265, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE)
+ .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 298, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 373, Short.MAX_VALUE))
+ .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 403, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(14, 14, 14)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE)
+ .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 397, Short.MAX_VALUE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addContainerGap())
@@ -1958,13 +2151,13 @@ public class SIStem extends PanelProcessor {
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(0, 0, 0)
- .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 213, Short.MAX_VALUE)
+ .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 241, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 214, Short.MAX_VALUE)
+ .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 239, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 213, Short.MAX_VALUE)
+ .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 241, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 216, Short.MAX_VALUE)
+ .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 239, Short.MAX_VALUE)
.addGap(0, 0, 0))
);
jPanel3Layout.setVerticalGroup(
@@ -1972,7 +2165,7 @@ public class SIStem extends PanelProcessor {
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addGap(14, 14, 14)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(jScrollPane6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE)
+ .addComponent(jScrollPane6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 397, Short.MAX_VALUE)
.addComponent(jScrollPane5, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane4, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane7))
@@ -2247,10 +2440,6 @@ public class SIStem extends PanelProcessor {
}
}//GEN-LAST:event_butonPlotActionPerformed
- private void roiChanged(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_roiChanged
- updateDetectorPlot();
- }//GEN-LAST:event_roiChanged
-
private void buttonEditMasterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonEditMasterActionPerformed
try {
String name = (String) modelMaster.getValueAt(tableMaster.getSelectedRow(), 0);
@@ -2312,6 +2501,7 @@ public class SIStem extends PanelProcessor {
private javax.swing.JCheckBox checkCompression;
private javax.swing.JCheckBox checkZigzag;
private ch.psi.pshell.swing.DiscretePositionerSelector comboAcquisition;
+ private javax.swing.JComboBox comboAnalyserSlit;
private ch.psi.pshell.swing.DiscretePositionerSelector comboDetMode;
private ch.psi.pshell.swing.DiscretePositionerSelector comboEnergy;
private javax.swing.JComboBox comboGrating;
@@ -2319,8 +2509,29 @@ public class SIStem extends PanelProcessor {
private ch.psi.pshell.swing.DiscretePositionerSelector comboPass;
private javax.swing.JComboBox comboPol;
private ch.psi.pshell.plot.MatrixPlotJFree detectorPlot;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel1;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel10;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel11;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel12;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel13;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel14;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel15;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel18;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel2;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel21;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel22;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel23;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel24;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel25;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel3;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel4;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel5;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel6;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel7;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel8;
+ private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel9;
private javax.swing.JLabel jLabel1;
- private javax.swing.JLabel jLabel10;
+ private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
@@ -2343,6 +2554,10 @@ public class SIStem extends PanelProcessor {
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel30;
private javax.swing.JLabel jLabel31;
+ private javax.swing.JLabel jLabel32;
+ private javax.swing.JLabel jLabel33;
+ private javax.swing.JLabel jLabel34;
+ private javax.swing.JLabel jLabel35;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
@@ -2351,8 +2566,6 @@ public class SIStem extends PanelProcessor {
private javax.swing.JPanel jPanel11;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
- private javax.swing.JPanel jPanel4;
- private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
@@ -2363,6 +2576,8 @@ public class SIStem extends PanelProcessor {
private javax.swing.JScrollPane jScrollPane7;
private javax.swing.JScrollPane jScrollPane8;
private javax.swing.JTabbedPane jTabbedPane1;
+ private javax.swing.JPanel panelAnalyser;
+ private javax.swing.JPanel panelDetector;
private javax.swing.JPanel panelEnergy;
private javax.swing.JPanel panelX;
private javax.swing.JPanel panelY;
@@ -2384,16 +2599,17 @@ public class SIStem extends PanelProcessor {
private ch.psi.pshell.swing.RegisterPanel textHighThetaY;
private ch.psi.pshell.swing.RegisterPanel textLowEnergy;
private ch.psi.pshell.swing.RegisterPanel textLowThetaY;
+ private ch.psi.pshell.swing.RegisterPanel textMinX;
+ private ch.psi.pshell.swing.RegisterPanel textMinY;
private javax.swing.JTextArea textMonitors;
private javax.swing.JTextArea textSensors;
+ private ch.psi.pshell.swing.RegisterPanel textSizeX;
+ private ch.psi.pshell.swing.RegisterPanel textSizeY;
private ch.psi.pshell.swing.RegisterPanel textSlices;
private javax.swing.JTextArea textSnapshots;
private ch.psi.pshell.swing.RegisterPanel textStepEnergy;
private ch.psi.pshell.swing.RegisterPanel textStepThetaY;
+ private ch.psi.pshell.swing.RegisterPanel textSweeps;
private javax.swing.JTextField textTime;
- private javax.swing.JTextField textXChannelMax;
- private javax.swing.JTextField textXChannelMin;
- private javax.swing.JTextField textYChannelMax;
- private javax.swing.JTextField textYChannelMin;
// End of variables declaration//GEN-END:variables
}
diff --git a/script/local.py b/script/local.py
index d98d53c..e582564 100644
--- a/script/local.py
+++ b/script/local.py
@@ -1,7 +1,7 @@
###################################################################################################
# Deployment specific global definitions - executed after startup.py
###################################################################################################
-
+import ch.psi.pshell.device.Camera as Camera
def get_additional_positioners():
ret = []
@@ -38,6 +38,13 @@ class Energy(PositionerBase):
def getMaxValue(self):
er=get_energy_range()
return er[1] if er is not None else -sys.maxint
+
+ def getChannelName(self):
+ return photon_energy.getChannelName()
+
+ def getResolution(self):
+ return photon_energy.getResolution()
+
add_device(Energy("energy", None), True)
def get_energy_range():
@@ -90,6 +97,9 @@ class Cff(PositionerBase):
def getMaxValue(self):
return pgm_cff.getMaxValue()
+
+ def getChannelName(self):
+ return pgm_cff.getChannelName()
add_device(Cff("cff", None), True)
@@ -127,6 +137,8 @@ id_mode.setSettlingCondition(IdSettlingCondition())
id_mode.setpoint.blockingWrite=True
grating.setSettlingCondition(GrSettlingCondition())
pgm_cff.setSettlingCondition(CffSettlingCondition())
+id_energy.setSettlingCondition(IdSettlingCondition())
+id_energy.setpoint.blockingWrite=True
def change_photon_pars(_photon_energy=None, _id_mode=None, _grating=None, _cff=None):
@@ -154,27 +166,33 @@ def change_photon_pars(_photon_energy=None, _id_mode=None, _grating=None, _cff=N
#Set operation mode to “PGM”
oper_mode.move("PGM")
-
- if _id_mode is not None:
- #Set polarization mode
- print "Setting id_mode="+str(_id_mode)
- id_mode.move("OFF")
- id_mode.move(_id_mode)
+
+ def move_grating(_grating, _photon_energy, _cff):
+ if _grating is not None:
+ #Set grating
+ print "Setting grating="+str(_grating)
+ grating.move(_grating)
+ if _photon_energy is not None:
+ #Set moni energy
+ print "Setting photon_energy="+str(_photon_energy)
+ photon_energy.move(_photon_energy)
+ if _cff is not None:
+ #Set cff
+ print "Setting cff="+str(_cff)
+ pgm_cff.move(_cff)
- if _grating is not None:
- #Set grating
- print "Setting grating="+str(_grating)
- grating.move(_grating)
-
- if _photon_energy is not None:
- #Set insertion device energy
- print "Setting photon_energy="+str(_photon_energy)
- photon_energy.move(_photon_energy)
-
- if _cff is not None:
- #Set cff
- print "Setting cff="+str(_cff)
- pgm_cff.move(_cff)
+ def move_id(_id_mode, _photon_energy):
+ if _id_mode is not None:
+ #Set polarization mode
+ print "Setting id_mode="+str(_id_mode)
+ id_mode.move("OFF")
+ id_mode.move(_id_mode)
+ if _photon_energy is not None:
+ #Set insertion device energy
+ print "Setting id_energy="+str(_photon_energy)
+ id_energy.move(_photon_energy)
+
+ ret = parallelize((move_grating,(_grating, _photon_energy, _cff)), (move_id,(_id_mode, _photon_energy)))
finally:
#Return operation mode to original value (e.g. “PGM+ID”)
@@ -308,7 +326,7 @@ def trigger_scienta():
image_id = scienta.currentImageCount
scienta.start()
scienta.waitReady(-1)
- scienta.waitNewImage(3000, image_id)
+ scienta.waitNewImage(10000, image_id)
def dummy_trigger_scienta():
@@ -401,4 +419,45 @@ def calc_acquisition_time(samples=1,exp=None, iter=None, images=None, mode=None,
else:
ret= "%02i:%02i:%02i" % (hours, minutes, time_s)
return ret
-
\ No newline at end of file
+
+def get_device_channel(dev):
+ dev = string_to_obj(dev)
+ if "getChannelName" in dir(dev):
+ return dev.getChannelName()
+ return None
+
+
+def set_device_channel_names(scan, sensors=None, snaps=None, diags=None, monitors=None):
+ layout=get_context().dataManager.layout
+ if sensors is not None:
+ for dev in sensors:
+ channel=get_device_channel(dev)
+ if channel:
+ try:
+ set_attribute(layout.getScanPath(scan)+string_to_obj(dev).alias, "channel", channel)
+ except:
+ pass
+ if snaps is not None:
+ for dev in snaps:
+ channel=get_device_channel(dev)
+ if channel:
+ try:
+ set_attribute(layout.getSnapPathName(scan, dev), "channel", channel)
+ except:
+ pass
+ if diags is not None:
+ for dev in diags:
+ channel=get_device_channel(dev)
+ if channel:
+ try:
+ set_attribute(layout.getDiagPathName(scan, dev), "channel", channel)
+ except:
+ pass
+ if monitors is not None:
+ for dev in monitors:
+ channel=get_device_channel(dev)
+ if channel:
+ try:
+ set_attribute(layout.getMonitorPathName(scan, string_to_obj(dev)), "channel", channel)
+ except:
+ pass
\ No newline at end of file
diff --git a/script/queues/test.que b/script/queues/test.que
old mode 100644
new mode 100755
diff --git a/script/queues/test2.que b/script/queues/test2.que
old mode 100644
new mode 100755
diff --git a/script/queues/test3.que b/script/queues/test3.que
old mode 100644
new mode 100755
diff --git a/script/queues/test4.que b/script/queues/test4.que
old mode 100644
new mode 100755
diff --git a/script/scans/templates/Default.json b/script/scans/templates/Default.json
new file mode 100755
index 0000000..33ab225
--- /dev/null
+++ b/script/scans/templates/Default.json
@@ -0,0 +1,33 @@
+{
+ "PASSES" : 1,
+ "STOP" : [ ],
+ "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
+ "PRE_ACTIONS" : {
+ "scienta.passEnergyDev" : "20",
+ "scienta.acquisitionModeDev" : "Fixed",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "Transmission",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 18.8,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 19.2,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.slices" : 512,
+ "scienta.channels" : 512,
+ "scienta.exposureDev" : 3.0,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 800,
+ "scienta.minY" : 50,
+ "scienta.sizeY" : 750,
+ "scienta.sweeps" : 1
+ },
+ "COMPRESSION" : true,
+ "SENSORS" : [ "scienta.dataMatrix" ],
+ "ZIGZAG" : false,
+ "SETTLING_TIME" : 0.0,
+ "MONITORS" : [ "current" ],
+ "START" : [ ],
+ "POSITIONERS" : [ ],
+ "STEPS" : [ ],
+ "SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
+}
\ No newline at end of file
diff --git a/script/scans/test/nick.json b/script/scans/test/nick.json
old mode 100644
new mode 100755
index 87cb792..5769c2e
--- a/script/scans/test/nick.json
+++ b/script/scans/test/nick.json
@@ -1,29 +1,37 @@
{
"PASSES" : 1,
- "STOP" : [ 5.0 ],
+ "STOP" : [ ],
"DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
"PRE_ACTIONS" : {
- "scienta.passEnergyDev" : "5",
- "scienta.acquisitionModeDev" : "Fixed",
+ "scienta.passEnergyDev" : "10",
+ "scienta.acquisitionModeDev" : "Sweep ThetaY",
"scienta.energyModeDev" : "Kinetic",
- "scienta.lensModeDev" : "A30_01",
+ "scienta.lensModeDev" : "DA30L_01",
"scienta.detectorModeDev" : "ADC",
- "scienta.lowEnergy" : 20.3,
- "scienta.centerEnergy" : 20.25,
- "scienta.highEnergy" : 20.5,
- "scienta.energyStepSize" : 0.001,
+ "scienta.lowEnergy" : 18.8,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 19.2,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.lowThetaY" : -10.0,
+ "scienta.centerThetaY" : 0.0,
+ "scienta.highThetaY" : 10.0,
+ "scienta.thetaYStepSize" : 0.5,
"scienta.centerThetaX" : 0.0,
- "scienta.slices" : 601,
- "scienta.channels" : 801
+ "scienta.slices" : 750,
+ "scienta.channels" : 800,
+ "scienta.exposureDev" : 1.0,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 800,
+ "scienta.minY" : 50,
+ "scienta.sizeY" : 750
},
"COMPRESSION" : true,
"SENSORS" : [ "scienta.dataMatrix" ],
"ZIGZAG" : false,
"SETTLING_TIME" : 0.0,
"MONITORS" : [ "current" ],
- "START" : [ -5.0 ],
- "RANGE" : [ 900, 100, 800, 200 ],
- "POSITIONERS" : [ "tilt" ],
- "STEPS" : [ 10 ],
+ "START" : [ ],
+ "POSITIONERS" : [ ],
+ "STEPS" : [ ],
"SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
}
\ No newline at end of file
diff --git a/script/scans/test/nick2d.json b/script/scans/test/nick2d.json
old mode 100644
new mode 100755
diff --git a/script/scans/test/scan1.json b/script/scans/test/scan1.json
old mode 100644
new mode 100755
index 6324ee3..6c74918
--- a/script/scans/test/scan1.json
+++ b/script/scans/test/scan1.json
@@ -2,14 +2,31 @@
"PASSES" : 1,
"STOP" : [ ],
"DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
- "PRE_ACTIONS" : { },
+ "PRE_ACTIONS" : {
+ "scienta.passEnergyDev" : "20",
+ "scienta.acquisitionModeDev" : "Fixed",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "A14_08",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 10.0,
+ "scienta.centerEnergy" : 21.0,
+ "scienta.highEnergy" : 15.0,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.centerThetaX" : 0.0,
+ "scienta.slices" : 512,
+ "scienta.channels" : 600,
+ "scienta.exposureDev" : 0.2,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 600,
+ "scienta.minY" : 0,
+ "scienta.sizeY" : 600
+ },
"COMPRESSION" : true,
"SENSORS" : [ "scienta.dataMatrix" ],
"ZIGZAG" : false,
"SETTLING_TIME" : 0.0,
"MONITORS" : [ "current" ],
"START" : [ ],
- "RANGE" : [ null, null, null, null ],
"POSITIONERS" : [ ],
"STEPS" : [ ],
"SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
diff --git a/script/scans/test/scan2.json b/script/scans/test/scan2.json
old mode 100644
new mode 100755
diff --git a/script/scans/test/scan3.json b/script/scans/test/scan3.json
old mode 100644
new mode 100755
diff --git a/script/scans/test/scan4.json b/script/scans/test/scan4.json
old mode 100644
new mode 100755
diff --git a/script/scans/test/scan5.json b/script/scans/test/scan5.json
old mode 100644
new mode 100755
index 1372594..050d942
--- a/script/scans/test/scan5.json
+++ b/script/scans/test/scan5.json
@@ -4,7 +4,24 @@
"DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
"PRE_ACTIONS" : {
"id_mode" : "CIRC+",
- "grating" : "G2 1200"
+ "grating" : "G2 1200",
+ "scienta.passEnergyDev" : "20",
+ "scienta.acquisitionModeDev" : "Fixed",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "Transmission",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 18.8,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 19.2,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.slices" : 512,
+ "scienta.channels" : 512,
+ "scienta.exposureDev" : 3.0,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 800,
+ "scienta.minY" : 50,
+ "scienta.sizeY" : 750,
+ "scienta.sweeps" : 1.0
},
"COMPRESSION" : true,
"SENSORS" : [ "scienta.dataMatrix" ],
@@ -12,7 +29,6 @@
"SETTLING_TIME" : 0.0,
"MONITORS" : [ "current" ],
"START" : [ 21.0 ],
- "RANGE" : [ null, null, null, null ],
"POSITIONERS" : [ "energy" ],
"STEPS" : [ 9 ],
"SNAPS" : [ "acmi", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
diff --git a/script/scans/test/scan6.json b/script/scans/test/scan6.json
old mode 100644
new mode 100755
diff --git a/script/scans/test/scan7.json b/script/scans/test/scan7.json
old mode 100644
new mode 100755
diff --git a/script/scans/test/test.json b/script/scans/test/test.json
old mode 100644
new mode 100755
index acc570f..f7d1766
--- a/script/scans/test/test.json
+++ b/script/scans/test/test.json
@@ -4,24 +4,33 @@
"DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
"PRE_ACTIONS" : {
"scienta.passEnergyDev" : "10",
- "scienta.acquisitionModeDev" : "Fixed",
+ "scienta.acquisitionModeDev" : "Sweep ThetaY",
"scienta.energyModeDev" : "Kinetic",
- "scienta.lensModeDev" : "Transmission",
+ "scienta.lensModeDev" : "DA30_01",
"scienta.detectorModeDev" : "ADC",
"scienta.lowEnergy" : 10.0,
- "scienta.centerEnergy" : 19.5,
- "scienta.highEnergy" : 150.0,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 15.0,
"scienta.energyStepSize" : 0.01,
- "scienta.slices" : 601,
- "scienta.channels" : 801
+ "scienta.lowThetaY" : -10.0,
+ "scienta.centerThetaY" : 0.0,
+ "scienta.highThetaY" : 10.0,
+ "scienta.thetaYStepSize" : 0.5,
+ "scienta.centerThetaX" : 0.0,
+ "scienta.slices" : 851,
+ "scienta.channels" : 801,
+ "scienta.exposureDev" : 1.0,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 900,
+ "scienta.minY" : 50,
+ "scienta.sizeY" : 900
},
"COMPRESSION" : true,
"SENSORS" : [ "scienta.dataMatrix" ],
"ZIGZAG" : false,
"SETTLING_TIME" : 0.0,
"MONITORS" : [ "current" ],
- "START" : [ 0.0 ],
- "RANGE" : [ null, null, null, null ],
+ "START" : [ -1.0 ],
"POSITIONERS" : [ "x" ],
"STEPS" : [ 4 ],
"SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
diff --git a/script/scans/test/test1.json b/script/scans/test/test1.json
old mode 100644
new mode 100755
diff --git a/script/scans/test/test2.json b/script/scans/test/test2.json
old mode 100644
new mode 100755
diff --git a/script/scans/test/test3.json b/script/scans/test/test3.json
old mode 100644
new mode 100755
diff --git a/script/scans/test/test_2.json b/script/scans/test/test_2.json
new file mode 100644
index 0000000..115f406
--- /dev/null
+++ b/script/scans/test/test_2.json
@@ -0,0 +1,38 @@
+{
+ "PASSES" : 1,
+ "STOP" : [ ],
+ "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
+ "PRE_ACTIONS" : {
+ "scienta.passEnergyDev" : "10",
+ "scienta.acquisitionModeDev" : "Sweep ThetaY",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "DA30_01",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 18.8,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 19.2,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.lowThetaY" : -10.0,
+ "scienta.centerThetaY" : 0.0,
+ "scienta.highThetaY" : 10.0,
+ "scienta.thetaYStepSize" : 0.5,
+ "scienta.centerThetaX" : 0.0,
+ "scienta.slices" : 350,
+ "scienta.channels" : 300,
+ "scienta.exposureDev" : 0.01,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 900,
+ "scienta.minY" : 350,
+ "scienta.sizeY" : 900,
+ "scienta.sweeps" : 1
+ },
+ "COMPRESSION" : true,
+ "SENSORS" : [ "scienta.dataMatrix" ],
+ "ZIGZAG" : false,
+ "SETTLING_TIME" : 0.0,
+ "MONITORS" : [ "current" ],
+ "START" : [ ],
+ "POSITIONERS" : [ ],
+ "STEPS" : [ ],
+ "SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
+}
\ No newline at end of file
diff --git a/script/scans/test/test_alex.json b/script/scans/test/test_alex.json
new file mode 100755
index 0000000..b8255fd
--- /dev/null
+++ b/script/scans/test/test_alex.json
@@ -0,0 +1,33 @@
+{
+ "PASSES" : 1,
+ "STOP" : [ ],
+ "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
+ "PRE_ACTIONS" : {
+ "scienta.passEnergyDev" : "20",
+ "scienta.acquisitionModeDev" : "Fixed",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "Transmission",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 18.8,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 19.2,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.slices" : 512,
+ "scienta.channels" : 512,
+ "scienta.exposureDev" : 3.0,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 800,
+ "scienta.minY" : 50,
+ "scienta.sizeY" : 750,
+ "scienta.sweeps" : 1
+ },
+ "COMPRESSION" : true,
+ "SENSORS" : [ "current" ],
+ "ZIGZAG" : false,
+ "SETTLING_TIME" : 0.0,
+ "MONITORS" : [ ],
+ "START" : [ ],
+ "POSITIONERS" : [ ],
+ "STEPS" : [ ],
+ "SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
+}
\ No newline at end of file
diff --git a/script/scans/test/test_nick.json b/script/scans/test/test_nick.json
old mode 100644
new mode 100755
diff --git a/script/scans/test/test_nick_2.json b/script/scans/test/test_nick_2.json
old mode 100644
new mode 100755
diff --git a/script/scans/test/test_simpleSweep.json b/script/scans/test/test_simpleSweep.json
new file mode 100755
index 0000000..e24998f
--- /dev/null
+++ b/script/scans/test/test_simpleSweep.json
@@ -0,0 +1,37 @@
+{
+ "PASSES" : 1,
+ "STOP" : [ ],
+ "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
+ "PRE_ACTIONS" : {
+ "scienta.passEnergyDev" : "10",
+ "scienta.acquisitionModeDev" : "Sweep Energy",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "DA30_01",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 18.8,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 19.2,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.lowThetaY" : -10.0,
+ "scienta.centerThetaY" : 0.0,
+ "scienta.highThetaY" : 10.0,
+ "scienta.thetaYStepSize" : 0.5,
+ "scienta.centerThetaX" : 0.0,
+ "scienta.slices" : 900,
+ "scienta.channels" : 800,
+ "scienta.exposureDev" : 0.1,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 800,
+ "scienta.minY" : 50,
+ "scienta.sizeY" : 900
+ },
+ "COMPRESSION" : true,
+ "SENSORS" : [ "scienta.dataMatrix" ],
+ "ZIGZAG" : false,
+ "SETTLING_TIME" : 0.0,
+ "MONITORS" : [ "current" ],
+ "START" : [ ],
+ "POSITIONERS" : [ ],
+ "STEPS" : [ ],
+ "SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
+}
\ No newline at end of file
diff --git a/script/scans/test/test_simpleSweep_moreRecords.json b/script/scans/test/test_simpleSweep_moreRecords.json
new file mode 100755
index 0000000..9498196
--- /dev/null
+++ b/script/scans/test/test_simpleSweep_moreRecords.json
@@ -0,0 +1,62 @@
+{
+ "PASSES" : 1,
+ "STOP" : [ ],
+ "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z", "energy" ],
+ "MASTER_AXIS" : {
+ "CONFIG" : {
+ "fileName" : "/sls/X09LA/data/X09LA/pshell/home/devices/tilt_correction.properties",
+ "precision" : -1,
+ "offset" : 0.0,
+ "scale" : 1.0,
+ "unit" : null,
+ "sign_bit" : 0,
+ "resolution" : "NaN",
+ "minValue" : "NaN",
+ "maxValue" : "NaN",
+ "rotation" : false,
+ "mode" : "LINEAR",
+ "masterPositions" : null,
+ "slave1Positions" : null,
+ "slave2Positions" : null,
+ "slave3Positions" : null,
+ "slave4Positions" : null,
+ "slave5Positions" : null,
+ "slave6Positions" : null
+ },
+ "MASTER" : "tilt",
+ "SLAVES" : [ "y" ],
+ "NAME" : "tilt_correction"
+ },
+ "PRE_ACTIONS" : {
+ "scienta.passEnergyDev" : "10",
+ "scienta.acquisitionModeDev" : "Sweep Energy",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "DA30_01",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 18.8,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 19.2,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.lowThetaY" : -10.0,
+ "scienta.centerThetaY" : 0.0,
+ "scienta.highThetaY" : 10.0,
+ "scienta.thetaYStepSize" : 0.5,
+ "scienta.centerThetaX" : 0.0,
+ "scienta.slices" : 750,
+ "scienta.channels" : 800,
+ "scienta.exposureDev" : 0.1,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 800,
+ "scienta.minY" : 50,
+ "scienta.sizeY" : 750
+ },
+ "COMPRESSION" : true,
+ "SENSORS" : [ "scienta.dataMatrix" ],
+ "ZIGZAG" : false,
+ "SETTLING_TIME" : 0.0,
+ "MONITORS" : [ "current", "photon_energy", "temp_sample1", "temp_sample2", "acmi" ],
+ "START" : [ ],
+ "POSITIONERS" : [ ],
+ "STEPS" : [ ],
+ "SNAPS" : [ "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "pgm_cff", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_shield", "scienta.passEnergyDev", "scienta.acquisitionModeDev", "scienta.energyModeDev", "scienta.lensModeDev", "scienta.lowEnergy", "scienta.centerEnergy", "scienta.highEnergy", "scienta.energyStepSize", "scienta.lowThetaY", "scienta.centerThetaY", "scienta.highThetaY", "scienta.thetaYStepSize", "scienta.centerThetaX", "scienta.exposureDev", "scienta.channels", "scienta.slices", "scienta.minX", "scienta.sizeX", "scienta.minY", "scienta.sizeY", "scienta.detectorModeDev" ]
+}
\ No newline at end of file
diff --git a/script/scans/test/test_thetaY.json b/script/scans/test/test_thetaY.json
new file mode 100644
index 0000000..e0707d3
--- /dev/null
+++ b/script/scans/test/test_thetaY.json
@@ -0,0 +1,37 @@
+{
+ "PASSES" : 1,
+ "STOP" : [ ],
+ "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
+ "PRE_ACTIONS" : {
+ "id_mode" : "LH",
+ "grating" : "G2 1200",
+ "scienta.passEnergyDev" : "10",
+ "scienta.acquisitionModeDev" : "Fixed",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "A30_01",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 18.8,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 19.2,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.centerThetaX" : 0.0,
+ "scienta.slices" : 350,
+ "scienta.channels" : 300,
+ "scienta.exposureDev" : 1.0,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 900,
+ "scienta.minY" : 350,
+ "scienta.sizeY" : 900,
+ "scienta.sweeps" : 1,
+ "energy" : 300.0
+ },
+ "COMPRESSION" : true,
+ "SENSORS" : [ "scienta.dataMatrix" ],
+ "ZIGZAG" : false,
+ "SETTLING_TIME" : 0.0,
+ "MONITORS" : [ "current" ],
+ "START" : [ ],
+ "POSITIONERS" : [ ],
+ "STEPS" : [ ],
+ "SNAPS" : [ "scienta.lensModeDev", "scienta.passEnergyDev", "scienta.energyModeDev", "scienta.exposureDev", "scienta.sweeps", "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
+}
\ No newline at end of file
diff --git a/script/scans/test/thetaY-x_test.json b/script/scans/test/thetaY-x_test.json
new file mode 100755
index 0000000..5f2a483
--- /dev/null
+++ b/script/scans/test/thetaY-x_test.json
@@ -0,0 +1,37 @@
+{
+ "PASSES" : 1,
+ "STOP" : [ ],
+ "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
+ "PRE_ACTIONS" : {
+ "scienta.passEnergyDev" : "10",
+ "scienta.acquisitionModeDev" : "Sweep ThetaY",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "DA30_01",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 10.0,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 15.0,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.lowThetaY" : -10.0,
+ "scienta.centerThetaY" : 0.0,
+ "scienta.highThetaY" : 10.0,
+ "scienta.thetaYStepSize" : 0.5,
+ "scienta.centerThetaX" : 0.0,
+ "scienta.slices" : 851,
+ "scienta.channels" : 801,
+ "scienta.exposureDev" : 1.0,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 900,
+ "scienta.minY" : 50,
+ "scienta.sizeY" : 900
+ },
+ "COMPRESSION" : true,
+ "SENSORS" : [ "scienta.dataMatrix" ],
+ "ZIGZAG" : false,
+ "SETTLING_TIME" : 0.0,
+ "MONITORS" : [ "current" ],
+ "START" : [ ],
+ "POSITIONERS" : [ ],
+ "STEPS" : [ ],
+ "SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
+}
\ No newline at end of file
diff --git a/script/scans/test/thetay.json b/script/scans/test/thetay.json
new file mode 100644
index 0000000..284b992
--- /dev/null
+++ b/script/scans/test/thetay.json
@@ -0,0 +1,35 @@
+{
+ "PASSES" : 1,
+ "STOP" : [ 2.0 ],
+ "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
+ "PRE_ACTIONS" : {
+ "scienta.passEnergyDev" : "10",
+ "scienta.acquisitionModeDev" : "Sweep ThetaY",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "DA30_01",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 18.8,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 19.2,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.lowThetaY" : -10.0,
+ "scienta.centerThetaY" : 0.0,
+ "scienta.highThetaY" : 10.0,
+ "scienta.thetaYStepSize" : 0.5,
+ "scienta.centerThetaX" : 0.0,
+ "scienta.slices" : 350,
+ "scienta.channels" : 300,
+ "scienta.exposureDev" : 0.01,
+ "scienta.minY" : 350,
+ "scienta.sweeps" : 1
+ },
+ "COMPRESSION" : true,
+ "SENSORS" : [ "scienta.dataMatrix" ],
+ "ZIGZAG" : false,
+ "SETTLING_TIME" : 0.0,
+ "MONITORS" : [ "current" ],
+ "START" : [ 0.0 ],
+ "POSITIONERS" : [ "x" ],
+ "STEPS" : [ 2 ],
+ "SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
+}
\ No newline at end of file
diff --git a/script/scans/test/tilt_multiSweeps_test.json b/script/scans/test/tilt_multiSweeps_test.json
new file mode 100755
index 0000000..e23d8e8
--- /dev/null
+++ b/script/scans/test/tilt_multiSweeps_test.json
@@ -0,0 +1,37 @@
+{
+ "PASSES" : 1,
+ "STOP" : [ 10.0 ],
+ "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
+ "PRE_ACTIONS" : {
+ "scienta.passEnergyDev" : "10",
+ "scienta.acquisitionModeDev" : "Fixed",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "DA30_01",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 18.8,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 19.2,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.lowThetaY" : -10.0,
+ "scienta.centerThetaY" : 0.0,
+ "scienta.highThetaY" : 10.0,
+ "scienta.thetaYStepSize" : 0.5,
+ "scienta.centerThetaX" : 0.0,
+ "scienta.slices" : 900,
+ "scienta.channels" : 800,
+ "scienta.exposureDev" : 0.1,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 800,
+ "scienta.minY" : 50,
+ "scienta.sizeY" : 900
+ },
+ "COMPRESSION" : true,
+ "SENSORS" : [ "scienta.dataMatrix" ],
+ "ZIGZAG" : false,
+ "SETTLING_TIME" : 0.0,
+ "MONITORS" : [ "current" ],
+ "START" : [ -10.0 ],
+ "POSITIONERS" : [ "tilt" ],
+ "STEPS" : [ 20 ],
+ "SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
+}
\ No newline at end of file
diff --git a/script/scans/test/tilt_test.json b/script/scans/test/tilt_test.json
new file mode 100755
index 0000000..e52cb67
--- /dev/null
+++ b/script/scans/test/tilt_test.json
@@ -0,0 +1,37 @@
+{
+ "PASSES" : 1,
+ "STOP" : [ 10.0 ],
+ "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ],
+ "PRE_ACTIONS" : {
+ "scienta.passEnergyDev" : "10",
+ "scienta.acquisitionModeDev" : "Fixed",
+ "scienta.energyModeDev" : "Kinetic",
+ "scienta.lensModeDev" : "DA30_01",
+ "scienta.detectorModeDev" : "ADC",
+ "scienta.lowEnergy" : 10.0,
+ "scienta.centerEnergy" : 19.0,
+ "scienta.highEnergy" : 15.0,
+ "scienta.energyStepSize" : 0.01,
+ "scienta.lowThetaY" : -10.0,
+ "scienta.centerThetaY" : 0.0,
+ "scienta.highThetaY" : 10.0,
+ "scienta.thetaYStepSize" : 0.5,
+ "scienta.centerThetaX" : 0.0,
+ "scienta.slices" : 851,
+ "scienta.channels" : 801,
+ "scienta.exposureDev" : 0.0,
+ "scienta.minX" : 100,
+ "scienta.sizeX" : 600,
+ "scienta.minY" : 50,
+ "scienta.sizeY" : 950
+ },
+ "COMPRESSION" : true,
+ "SENSORS" : [ "scienta.dataMatrix" ],
+ "ZIGZAG" : false,
+ "SETTLING_TIME" : 0.0,
+ "MONITORS" : [ "current" ],
+ "START" : [ -10.0 ],
+ "POSITIONERS" : [ "tilt" ],
+ "STEPS" : [ 20 ],
+ "SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "photon_energy", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_sample1", "temp_sample2", "temp_shield" ]
+}
\ No newline at end of file
diff --git a/script/templates/EnergyScan.py b/script/templates/EnergyScan.py
old mode 100644
new mode 100755
diff --git a/script/templates/Reload.py b/script/templates/Reload.py
new file mode 100755
index 0000000..aa9a28f
--- /dev/null
+++ b/script/templates/Reload.py
@@ -0,0 +1,9 @@
+datafile = args[0]
+
+config = load_data(datafile+"|scripts/config.json")
+config_file = get_attributes(datafile+"|scripts")["config"]
+
+with open(config_file, 'w') as f:
+ f.write(config)
+
+App.getInstance().getMainFrame().openScriptOrProcessor(config_file)
\ No newline at end of file
diff --git a/script/templates/SIStem.py b/script/templates/SIStem.py
index 356b1d2..6b291d0 100644
--- a/script/templates/SIStem.py
+++ b/script/templates/SIStem.py
@@ -26,6 +26,10 @@ def load_parameters(name):
for key in config.keys():
globals()[key] = config[key]
print str(key), " = ", config[key]
+
+ with open(filename) as config_file:
+ save_dataset("scripts/config.json", config_file.read(), type = 's')
+ set_attribute("scripts", "config", filename)
if NAME:
load_parameters(NAME)
@@ -41,6 +45,8 @@ latency = SETTLING_TIME
passes = int(PASSES)
zigzag = bool(ZIGZAG)
+#Setuop Scienta
+scienta.setGrabMode(Camera.GrabMode.Single)
#Change photon parameters
_id_mode=_grating=None
@@ -75,33 +81,48 @@ if COMPRESSION:
def before_read(pos, scan):
- trigger_scienta()
+ if scienta.dataMatrix in sensors:
+ trigger_scienta()
-data_3d = (scienta.dataMatrix in sensors) and (str(scienta.getAcquisitionMode())=="Swept_Energy_ThetaY")
+
+data_3d = (scienta.dataMatrix in sensors) and ("thetay" in scienta.acquisitionMode.lower())
+if data_3d:
+ print "3D dataset"
+
def after_read(rec, scan):
global data_3d
#handle_diagnostics(rec)
- #data_3d = (scienta.dataMatrix in sensors) and (scienta.arraySize2.read()>1)
if data_3d:
try:
- path = get_exec_pars().scanPath + ("/3d_images/%04d" % rec.index)
- data = scienta.takeStack()
- save_dataset(path, data)
+ #path = get_exec_pars().scanPath + ("/3d_images/%04d" % rec.index)
+ #data = scienta.takeStack()
+ #save_dataset(path, data)
+ path = get_exec_pars().scanPath + "/images"
+ if rec.index==0:
+ size=scienta.getImageSize()
+ if len(size)<3:
+ raise Exception("Data is not 3D")
+ num_images = scan.getNumberOfRecords() * size[2]
+ create_dataset(path, scienta.dataArray, None, (num_images, size[1], size[0]), {"layout":"contiguous", "compression":True})
+ for img in scienta.takeStack():
+ append_dataset(path, img)
except:
log(sys.exc_info()[1])
try:
if len(positioners)==0:
ret= tscan (sensors, 1,0, passes=passes, \
before_read=before_read, after_read=after_read, \
- snaps=SNAPS, diags=DIAGS, monitors=MONITORS, keep=True)
- save_dataset("/image", ret[scienta.dataMatrix][0], type = 'i', features={"compression":True})
+ snaps=SNAPS, diags=DIAGS, monitors=MONITORS, keep=True)
+ #if (scienta.dataMatrix in sensors) and not data_3d:
+ # save_dataset("/image", ret[scienta.dataMatrix][0], type = 'i', features={"compression":True})
else:
ret= ascan (positioners, sensors, start, end, steps, \
latency= latency, relative=False, passes=passes, zigzag=zigzag, \
before_read=before_read, after_read=after_read, \
snaps=SNAPS, diags=DIAGS, monitors=MONITORS)
+ set_device_channel_names(ret.scan, sensors, SNAPS, DIAGS, MONITORS )
finally:
+ scienta.stop()
scienta.zeroSupplies()
-
print ret
diff --git a/script/test/PlotImage.py b/script/test/PlotImage.py
new file mode 100755
index 0000000..5c69810
--- /dev/null
+++ b/script/test/PlotImage.py
@@ -0,0 +1,15 @@
+
+sensor = scienta.getSensorSize()
+roi = scienta.getROI()
+data = scienta.getDataMatrix().take()
+
+a=Convert.toDouble(data);
+scaleX = roi[2] / len(a[0])
+scaleY = roi[3] / len(a)
+arr = [[0.0] * sensor[1]] *sensor[0]
+for i in range(len(a)):
+ for j in range (len(a[0])):
+ arr[int(scaleY * i) + roi[1]][int(scaleX * j) + roi[0]] = a[i][j]
+
+
+p=plot(arr)
\ No newline at end of file
diff --git a/script/test/TestLensMode.py b/script/test/TestLensMode.py
old mode 100644
new mode 100755
diff --git a/script/test/TestScan.py b/script/test/TestScan.py
old mode 100644
new mode 100755
diff --git a/script/test/test.py b/script/test/test.py
new file mode 100755
index 0000000..30d74d2
--- /dev/null
+++ b/script/test/test.py
@@ -0,0 +1 @@
+test
\ No newline at end of file
diff --git a/script/test/x.xml b/script/test/x.xml
new file mode 100755
index 0000000..33c0849
--- /dev/null
+++ b/script/test/x.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 10
+
+
+
+
+
+