From 62474e00594ce632b8129be796065f350b308af3 Mon Sep 17 00:00:00 2001 From: gac-x09la Date: Mon, 25 Apr 2022 14:26:36 +0200 Subject: [PATCH] --- config/config.properties | 54 ++++----- config/variables.properties | 8 +- devices/phi_master.properties | 18 +++ extensions/Scienta.jar | Bin 52540 -> 52749 bytes plugins/SIStem.form | 103 +++++++++------- plugins/SIStem.java | 187 +++++++++++++++++++---------- script/queues/test.que | 2 +- script/scans/test/nick.json | 24 ++-- script/scans/test/test.json | 23 ++-- script/scans/test/test1.json | 15 ++- script/scans/test/test2.json | 29 +++++ script/scans/test/test3.json | 29 +++++ script/scans/test/test_nick.json | 33 +++++ script/scans/test/test_nick_2.json | 32 +++++ script/templates/SIStem.py | 6 +- 15 files changed, 396 insertions(+), 167 deletions(-) create mode 100644 devices/phi_master.properties create mode 100644 script/scans/test/test2.json create mode 100644 script/scans/test/test3.json create mode 100644 script/scans/test/test_nick.json create mode 100644 script/scans/test/test_nick_2.json diff --git a/config/config.properties b/config/config.properties index 565d3ec..dcc2cc6 100644 --- a/config/config.properties +++ b/config/config.properties @@ -1,48 +1,48 @@ -#Tue Nov 16 14:43:26 CET 2021 +#Wed Mar 16 09:54:44 CET 2022 +hostName= +userManagement=false +disableEmbeddedAttributes=false +instanceName=SIS autoSaveScanData=true simulation=false -dataScanSaveOutput=false -userAuthenticator= -dataScanSaveScript=false -notifiedTasks= -parallelInitialization=true -dataTransferPath= -saveConsoleSessionFiles=false -hostName= -disableEmbeddedAttributes=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} +filePermissionsLogs=Public dataLayout=default disableDataFileLogs=false sessionHandling=Off terminalEnabled=false notificationLevel=Off +filePermissionsScripts=Public +userAuthenticator= terminalPort=3579 -dataTransferUser= -versionTrackingLogin={context}/svcusr-hlapp_robot -noBytecodeFiles=false -versionTrackingRemote=git@git.psi.ch\:pshell_config/x09la.git -logDaysToLive=7 logLevelConsole=Off filePermissionsConfig=Public scanStreamerPort=-1 +dataScanSaveScript=false +dataTransferUser= dataScanSaveSetpoints=false -versionTrackingManual=true -dataTransferMode=Off -userManagement=false -instanceName=SIS -dataServerPort=-1 -hideServerMessages=false -dataScanReleaseRecords=false -dataScanPreserveTypes=true -dataScanFlushRecords=false -logPath={logs}/{date}_{time} -filePermissionsLogs=Public -filePermissionsScripts=Public +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/variables.properties b/config/variables.properties index 43bf783..338e903 100644 --- a/config/variables.properties +++ b/config/variables.properties @@ -1,4 +1,4 @@ -#Wed Mar 02 15:34:58 CET 2022 -LastRunDate=220302 -DaySequentialNumber=6 -FileSequentialNumber=187 +#Tue Apr 12 13:18:32 CEST 2022 +LastRunDate=220412 +DaySequentialNumber=1 +FileSequentialNumber=278 diff --git a/devices/phi_master.properties b/devices/phi_master.properties new file mode 100644 index 0000000..2f94bbc --- /dev/null +++ b/devices/phi_master.properties @@ -0,0 +1,18 @@ +#Tue Apr 12 13:38:32 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/extensions/Scienta.jar b/extensions/Scienta.jar index bbdff866d01bb6816df409dacbd97f435d6956d6..6a5499f2dc7871bca90daee891d8a15b3e3ef664 100644 GIT binary patch delta 11237 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 delta 11201 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 ZAn)AhYy{vS7T!hiq( diff --git a/plugins/SIStem.form b/plugins/SIStem.form index bccf2ea..af66748 100644 --- a/plugins/SIStem.form +++ b/plugins/SIStem.form @@ -160,12 +160,12 @@ - + - + + + - - @@ -179,7 +179,7 @@ - + @@ -208,15 +208,15 @@ - - - + + + - + @@ -246,7 +246,7 @@ - + @@ -321,15 +321,15 @@ - - - + + + - + @@ -359,7 +359,7 @@ - + @@ -427,7 +427,7 @@ - + @@ -440,7 +440,7 @@ - + @@ -460,6 +460,13 @@ + + + + + + + @@ -474,10 +481,10 @@ - - - - + + + + @@ -506,7 +513,7 @@ - + @@ -575,45 +582,39 @@ - + + - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + + @@ -628,6 +629,11 @@ + + + + + @@ -756,6 +762,17 @@ + + + + + + + + + + + diff --git a/plugins/SIStem.java b/plugins/SIStem.java index 75971e2..bdfac5b 100644 --- a/plugins/SIStem.java +++ b/plugins/SIStem.java @@ -2,6 +2,7 @@ import ch.psi.pshell.core.Context; import ch.psi.pshell.core.JsonSerializer; import ch.psi.pshell.core.Nameable; +import ch.psi.pshell.core.Plugin; import ch.psi.pshell.device.Device; import ch.psi.pshell.device.DeviceAdapter; import ch.psi.pshell.device.DeviceListener; @@ -28,6 +29,7 @@ import ch.psi.utils.Arr; import ch.psi.utils.Convert; import ch.psi.utils.IO; import ch.psi.utils.State; +import ch.psi.utils.Str; import ch.psi.utils.swing.SwingUtils; import java.awt.Color; import java.awt.Component; @@ -60,6 +62,8 @@ import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.TransferHandler; +import javax.swing.event.TableModelEvent; +import javax.swing.event.TableModelListener; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.table.DefaultTableModel; @@ -83,6 +87,7 @@ public class SIStem extends PanelProcessor { final JTextField[] scientaRangeFields; String[] additionalPositioners ; boolean intialized; + boolean startButtonPressed; static{ QueueProcessor.DEFAULT_INFO_COLUMN = "Time"; @@ -188,7 +193,7 @@ public class SIStem extends PanelProcessor { }); scientaPanels = new RegisterPanel[]{textLowEnergy,textCenterEnergy, textHighEnergy, textStepEnergy, - textLowThetaY, textCenterThetaY, textHighThetaY, textStepThetaY, textCenterThetaX, textSlices, textChannels}; + textLowThetaY, textCenterThetaY, textHighThetaY, textStepThetaY, textCenterThetaX, textSlices, textChannels, textExposureDev}; scientaRangeFields = new JTextField[]{textXChannelMax, textXChannelMin, textYChannelMax, textYChannelMin}; scientaCombos = new DiscretePositionerSelector[]{comboPass, comboAcquisition, comboEnergy, comboLens, comboDetMode}; deviceCombos = new JComboBox[]{comboPol, comboGrating}; @@ -201,6 +206,13 @@ public class SIStem extends PanelProcessor { updateLens(); }); + modelScanned.addTableModelListener(new TableModelListener() { + @Override + public void tableChanged(TableModelEvent e) { + updateTime(); + } + }); + clear(); //startTimer(1000, 1000); } @@ -385,6 +397,10 @@ public class SIStem extends PanelProcessor { @Override public void saveAs(String fileName) throws IOException { currentFile = new File(fileName); + if (!intialized){ + return; + } + Map preActions = new LinkedHashMap(); @@ -462,8 +478,28 @@ public class SIStem extends PanelProcessor { updateControls(); } + + //TODO: remove in next version (use getContext().getPlugin) + Plugin getPlugin(String name) { + for (Plugin p: getContext().getPlugins()) { + if (IO.getPrefix(getPluginName()).equals(name)){ + return p; + } + } + return null; + } + @Override - public void open(String fileName) throws IOException { + public void open(String fileName) throws IOException { + if (!intialized){ + //Called from queue, set filename and load file in the panel + currentFile = (fileName != null) ? new File(fileName) : null; + Plugin p = getPlugin(SIStem.class.getSimpleName()); + if (p!=null){ + ((SIStem)p).open(fileName); + } + return; + } clear(); try{ if (fileName != null) { @@ -562,7 +598,7 @@ public class SIStem extends PanelProcessor { @Override public void clear() { - currentFile = null; + currentFile = null; deletePrivateMasterAxis(); for (JComboBox combo : deviceCombos) { if (combo.getModel().getSize()>0){ @@ -643,28 +679,35 @@ public class SIStem extends PanelProcessor { @Override public void execute() throws Exception { - checkValues(); - checkBeamline(); - save(); - if (currentFile == null) { - return; + try{ + if (intialized){ + //Called from queue, don't update file contents + checkValues(); + checkBeamline(); + save(); + } + if (currentFile == null) { + return; + } + Processor p = (getView()==null) ? null : getView().getRunningProcessor(true); + boolean showException = (getView()==null) ? startButtonPressed : getView().getPreferences().getScriptPopupDialog() != Preferences.ScriptPopupDialog.None; + HashMap args = new HashMap(); + args.put("NAME", getScanName()); + this.runAsync("templates/SIStem", args).handle((ret, ex) -> { + if (ex != null) { + if ((p==null)||!(p instanceof QueueProcessor)){ + if (showException) { + if (!getContext().isAborted()) { + showException((Exception)ex); + } + } + } + } + return ret; + }); + } finally{ + startButtonPressed=false; } - Processor p = getView().getRunningProcessor(true); - HashMap args = new HashMap(); - args.put("NAME", getScanName()); - this.runAsync("templates/SIStem", args).handle((ret, ex) -> { - if (ex != null) { - if ((p==null)||!(p instanceof QueueProcessor)){ - if (getView().getPreferences().getScriptPopupDialog() != Preferences.ScriptPopupDialog.None) { - if (!getContext().isAborted()) { - showException((Exception)ex); - } - } - } - } - return ret; - }); - } @Override @@ -1011,8 +1054,10 @@ public class SIStem extends PanelProcessor { public void onValueChanged(final Device device, final Object value, final Object former) { try { Double p = (Double) eval("scienta.getProgress()", true); + State state = (State) eval("scienta.getState()", true); SwingUtilities.invokeLater(() -> { progress.setValue((int) (p * 1000)); + progress.setIndeterminate((p<=0) && (state==State.Busy)); }); } catch (Exception ex) { @@ -1099,6 +1144,8 @@ public class SIStem extends PanelProcessor { comboDetMode = new ch.psi.pshell.swing.DiscretePositionerSelector(); textChannels = new ch.psi.pshell.swing.RegisterPanel(); textSlices = new ch.psi.pshell.swing.RegisterPanel(); + jLabel31 = new javax.swing.JLabel(); + textExposureDev = new ch.psi.pshell.swing.RegisterPanel(); jPanel11 = new javax.swing.JPanel(); checkZigzag = new javax.swing.JCheckBox(); jLabel4 = new javax.swing.JLabel(); @@ -1209,13 +1256,13 @@ public class SIStem extends PanelProcessor { .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, 80, Short.MAX_VALUE) - .addComponent(textCenterEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE) - .addComponent(textHighEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE))) + .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, 80, Short.MAX_VALUE))) + .addComponent(textStepEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE))) .addContainerGap()) ); @@ -1240,7 +1287,7 @@ public class SIStem extends PanelProcessor { .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(16, Short.MAX_VALUE)) + .addContainerGap(38, Short.MAX_VALUE)) ); panelY.setBorder(javax.swing.BorderFactory.createTitledBorder("ThetaY ")); @@ -1279,13 +1326,13 @@ public class SIStem extends PanelProcessor { .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, 80, Short.MAX_VALUE) - .addComponent(textCenterThetaY, javax.swing.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE) - .addComponent(textHighThetaY, javax.swing.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE))) + .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, 80, Short.MAX_VALUE))) + .addComponent(textStepThetaY, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE))) .addContainerGap()) ); @@ -1310,7 +1357,7 @@ public class SIStem extends PanelProcessor { .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(16, Short.MAX_VALUE)) + .addContainerGap(38, Short.MAX_VALUE)) ); panelX.setBorder(javax.swing.BorderFactory.createTitledBorder("ThetaX")); @@ -1328,7 +1375,7 @@ public class SIStem extends PanelProcessor { .addContainerGap() .addComponent(jLabel26) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(textCenterThetaX, javax.swing.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE) + .addComponent(textCenterThetaX, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE) .addContainerGap()) ); panelXLayout.setVerticalGroup( @@ -1338,9 +1385,11 @@ public class SIStem extends PanelProcessor { .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(67, Short.MAX_VALUE)) + .addContainerGap(89, Short.MAX_VALUE)) ); + jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("Parameters")); + jLabel29.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel29.setText("Energy Mode:"); @@ -1374,10 +1423,10 @@ 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, 150, Short.MAX_VALUE) - .addComponent(comboEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE) - .addComponent(comboAcquisition, javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE) - .addComponent(comboPass, javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE)) + .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)) .addContainerGap()) ); @@ -1413,11 +1462,11 @@ public class SIStem extends PanelProcessor { .addContainerGap() .addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(panelEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(panelEnergy, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(12, 12, 12) - .addComponent(panelX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(panelX, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(panelY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(panelY, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); jPanel4Layout.setVerticalGroup( @@ -1429,7 +1478,7 @@ public class SIStem extends PanelProcessor { .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(169, Short.MAX_VALUE)) + .addContainerGap(147, Short.MAX_VALUE)) ); jPanel4Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jPanel10, panelEnergy, panelX, panelY}); @@ -1493,46 +1542,51 @@ public class SIStem extends PanelProcessor { textSlices.setName("scienta.slices"); // NOI18N + jLabel31.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel31.setText("Dwell Time (s):"); + + 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() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .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(jLabel9)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .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.PREFERRED_SIZE, 132, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addGroup(jPanel5Layout.createSequentialGroup() - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel31) + .addComponent(jLabel9) + .addComponent(jLabel27) .addComponent(jLabel10) .addComponent(jLabel25)) .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) .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))) + .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() - .addComponent(jLabel27) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(textChannels, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(butonPlot)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 26, Short.MAX_VALUE) - .addComponent(detectorPlot, javax.swing.GroupLayout.DEFAULT_SIZE, 543, Short.MAX_VALUE) + .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, jLabel9}); + 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) @@ -1543,6 +1597,10 @@ public class SIStem extends PanelProcessor { .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) .addComponent(jLabel9) @@ -2066,6 +2124,7 @@ public class SIStem extends PanelProcessor { private void buttonStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStartActionPerformed try { + startButtonPressed=true; execute(); } catch (Exception ex) { showException(ex); @@ -2283,6 +2342,7 @@ public class SIStem extends PanelProcessor { private javax.swing.JLabel jLabel29; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel30; + private javax.swing.JLabel jLabel31; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; @@ -2318,6 +2378,7 @@ public class SIStem extends PanelProcessor { private ch.psi.pshell.swing.RegisterPanel textCenterThetaY; private ch.psi.pshell.swing.RegisterPanel textChannels; private javax.swing.JTextArea textDiagnostics; + private ch.psi.pshell.swing.RegisterPanel textExposureDev; private javax.swing.JTextField textFile; private ch.psi.pshell.swing.RegisterPanel textHighEnergy; private ch.psi.pshell.swing.RegisterPanel textHighThetaY; diff --git a/script/queues/test.que b/script/queues/test.que index 69ea4b2..7401fe7 100644 --- a/script/queues/test.que +++ b/script/queues/test.que @@ -1 +1 @@ -[ [ [ true, "scans/test/nick.json", "\"Time\":2.500", "Resume", "Failure" ], [ false, "scans/test/nick2d.json", "", "Resume", "Disabled" ], [ true, "scans/test/nick.json", "", "Resume", "Success" ], [ true, "scans/test/nick.json", "", "Resume", "Failure" ], [ true, "scans/test/nick.json", "\"Time\":2.500", "Resume", "Success" ], [ true, "scans/test/scan2.json", "", "Resume", "Failure" ], [ true, "scans/test/scan2.json", "\"Time\":5.000", "Resume", "Success" ], [ true, "scans/test/scan2.json", "\"Time\":5.000", "Resume", "Failure" ] ] ] \ No newline at end of file +[ [ [ true, "scans/test/test.json", "", "Resume", "Success", "5 x 01" ], [ true, "scans/test/test3.json", "", "Resume", "Success", "1 x 01" ], [ true, "scans/test/test2.json", "", "Resume", "Success", "3 x 02" ] ] ] \ No newline at end of file diff --git a/script/scans/test/nick.json b/script/scans/test/nick.json index 3258503..87cb792 100644 --- a/script/scans/test/nick.json +++ b/script/scans/test/nick.json @@ -1,29 +1,29 @@ { "PASSES" : 1, - "STOP" : [ 1.0 ], + "STOP" : [ 5.0 ], "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ], "PRE_ACTIONS" : { - "scienta.passEnergyDev" : "10", + "scienta.passEnergyDev" : "5", "scienta.acquisitionModeDev" : "Fixed", "scienta.energyModeDev" : "Kinetic", - "scienta.lensModeDev" : "A30L_01", + "scienta.lensModeDev" : "A30_01", "scienta.detectorModeDev" : "ADC", - "scienta.lowEnergy" : 33.0, - "scienta.centerEnergy" : 34.5, - "scienta.highEnergy" : 35.0, - "scienta.energyStepSize" : 0.005, + "scienta.lowEnergy" : 20.3, + "scienta.centerEnergy" : 20.25, + "scienta.highEnergy" : 20.5, + "scienta.energyStepSize" : 0.001, "scienta.centerThetaX" : 0.0, "scienta.slices" : 601, "scienta.channels" : 801 }, "COMPRESSION" : true, - "SENSORS" : [ "scienta.dataMatrix", "current" ], + "SENSORS" : [ "scienta.dataMatrix" ], "ZIGZAG" : false, "SETTLING_TIME" : 0.0, "MONITORS" : [ "current" ], - "START" : [ 0.0 ], - "RANGE" : [ 900, 100, 750, 150 ], - "POSITIONERS" : [ "x" ], - "STEPS" : [ 9 ], + "START" : [ -5.0 ], + "RANGE" : [ 900, 100, 800, 200 ], + "POSITIONERS" : [ "tilt" ], + "STEPS" : [ 10 ], "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.json b/script/scans/test/test.json index 5dfaee5..acc570f 100644 --- a/script/scans/test/test.json +++ b/script/scans/test/test.json @@ -1,22 +1,17 @@ { "PASSES" : 1, - "STOP" : [ ], + "STOP" : [ 1.0 ], "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ], "PRE_ACTIONS" : { - "scienta.passEnergyDev" : "50", + "scienta.passEnergyDev" : "10", "scienta.acquisitionModeDev" : "Fixed", "scienta.energyModeDev" : "Kinetic", - "scienta.lensModeDev" : "DA7_08", + "scienta.lensModeDev" : "Transmission", "scienta.detectorModeDev" : "ADC", "scienta.lowEnergy" : 10.0, - "scienta.centerEnergy" : 12.0, - "scienta.highEnergy" : 15.0, - "scienta.energyStepSize" : 0.005, - "scienta.lowThetaY" : 2.0, - "scienta.centerThetaY" : 4.0, - "scienta.highThetaY" : 6.0, - "scienta.thetaYStepSize" : 0.1, - "scienta.centerThetaX" : 0.0, + "scienta.centerEnergy" : 19.5, + "scienta.highEnergy" : 150.0, + "scienta.energyStepSize" : 0.01, "scienta.slices" : 601, "scienta.channels" : 801 }, @@ -25,9 +20,9 @@ "ZIGZAG" : false, "SETTLING_TIME" : 0.0, "MONITORS" : [ "current" ], - "START" : [ ], + "START" : [ 0.0 ], "RANGE" : [ null, null, null, null ], - "POSITIONERS" : [ ], - "STEPS" : [ ], + "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" ] } \ No newline at end of file diff --git a/script/scans/test/test1.json b/script/scans/test/test1.json index 3a3e694..46e6643 100644 --- a/script/scans/test/test1.json +++ b/script/scans/test/test1.json @@ -2,7 +2,20 @@ "PASSES" : 1, "STOP" : [ 42.0 ], "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ], - "PRE_ACTIONS" : { }, + "PRE_ACTIONS" : { + "scienta.passEnergyDev" : "10", + "scienta.acquisitionModeDev" : "Fixed", + "scienta.energyModeDev" : "Kinetic", + "scienta.lensModeDev" : "Transmission", + "scienta.detectorModeDev" : "ADC", + "scienta.lowEnergy" : 10.0, + "scienta.centerEnergy" : 19.5, + "scienta.highEnergy" : 150.0, + "scienta.energyStepSize" : 0.01, + "scienta.slices" : 601, + "scienta.channels" : 801, + "scienta.exposureDev" : 1.0 + }, "COMPRESSION" : true, "SENSORS" : [ "scienta.dataMatrix" ], "ZIGZAG" : false, diff --git a/script/scans/test/test2.json b/script/scans/test/test2.json new file mode 100644 index 0000000..d931a04 --- /dev/null +++ b/script/scans/test/test2.json @@ -0,0 +1,29 @@ +{ + "PASSES" : 1, + "STOP" : [ 1.0 ], + "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ], + "PRE_ACTIONS" : { + "scienta.passEnergyDev" : "10", + "scienta.acquisitionModeDev" : "Fixed", + "scienta.energyModeDev" : "Kinetic", + "scienta.lensModeDev" : "Transmission", + "scienta.detectorModeDev" : "ADC", + "scienta.lowEnergy" : 10.0, + "scienta.centerEnergy" : 19.5, + "scienta.highEnergy" : 11.0, + "scienta.energyStepSize" : 0.1, + "scienta.slices" : 601, + "scienta.channels" : 801, + "scienta.exposureDev" : 1.0 + }, + "COMPRESSION" : true, + "SENSORS" : [ "scienta.dataMatrix" ], + "ZIGZAG" : false, + "SETTLING_TIME" : 0.0, + "MONITORS" : [ "current" ], + "START" : [ 0.0 ], + "RANGE" : [ null, null, null, null ], + "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/test3.json b/script/scans/test/test3.json new file mode 100644 index 0000000..c522422 --- /dev/null +++ b/script/scans/test/test3.json @@ -0,0 +1,29 @@ +{ + "PASSES" : 1, + "STOP" : [ ], + "DIAGS" : [ "phi", "theta", "tilt", "x", "y", "z" ], + "PRE_ACTIONS" : { + "scienta.passEnergyDev" : "10", + "scienta.acquisitionModeDev" : "Fixed", + "scienta.energyModeDev" : "Kinetic", + "scienta.lensModeDev" : "Transmission", + "scienta.detectorModeDev" : "ADC", + "scienta.lowEnergy" : 10.0, + "scienta.centerEnergy" : 19.5, + "scienta.highEnergy" : 150.0, + "scienta.energyStepSize" : 0.01, + "scienta.slices" : 601, + "scienta.channels" : 801, + "scienta.exposureDev" : 2.0 + }, + "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" ] +} \ No newline at end of file diff --git a/script/scans/test/test_nick.json b/script/scans/test/test_nick.json new file mode 100644 index 0000000..3f4084e --- /dev/null +++ b/script/scans/test/test_nick.json @@ -0,0 +1,33 @@ +{ + "PASSES" : 1, + "STOP" : [ ], + "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.5, + "scienta.highEnergy" : 150.0, + "scienta.energyStepSize" : 0.01, + "scienta.lowThetaY" : 2.0, + "scienta.centerThetaY" : 4.0, + "scienta.highThetaY" : 6.0, + "scienta.thetaYStepSize" : 0.1, + "scienta.centerThetaX" : 0.0, + "scienta.slices" : 601, + "scienta.channels" : 801 + }, + "COMPRESSION" : true, + "SENSORS" : [ "scienta.dataMatrix" ], + "ZIGZAG" : false, + "SETTLING_TIME" : 0.0, + "MONITORS" : [ "current" ], + "START" : [ ], + "RANGE" : [ 900, 100, 800, 200 ], + "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_2.json b/script/scans/test/test_nick_2.json new file mode 100644 index 0000000..0116e71 --- /dev/null +++ b/script/scans/test/test_nick_2.json @@ -0,0 +1,32 @@ +{ + "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" : "A30_01", + "scienta.detectorModeDev" : "ADC", + "scienta.lowEnergy" : 10.0, + "scienta.centerEnergy" : 20.0, + "scienta.highEnergy" : 150.0, + "scienta.energyStepSize" : 0.01, + "scienta.centerThetaX" : 0.0, + "scienta.slices" : 601, + "scienta.channels" : 801, + "scienta.exposureDev" : 0.2, + "x" : 0.1, + "y" : -0.2 + }, + "COMPRESSION" : true, + "SENSORS" : [ "scienta.dataMatrix" ], + "ZIGZAG" : false, + "SETTLING_TIME" : 0.0, + "MONITORS" : [ "current", "photon_energy", "temp_sample1", "temp_sample2" ], + "START" : [ -10.0 ], + "RANGE" : [ null, null, null, null ], + "POSITIONERS" : [ "tilt" ], + "STEPS" : [ 41 ], + "SNAPS" : [ "acmi", "cff", "energy", "exit_slit", "fe_horiz_width", "fe_vert_width", "helium_valve", "master", "pgm_cff", "tcmp", "temp_boot1", "temp_boot2", "temp_cryopump", "temp_cryostat", "temp_headmech", "temp_shield" ] +} \ No newline at end of file diff --git a/script/templates/SIStem.py b/script/templates/SIStem.py index 55a50d1..356b1d2 100644 --- a/script/templates/SIStem.py +++ b/script/templates/SIStem.py @@ -91,10 +91,11 @@ def after_read(rec, scan): except: log(sys.exc_info()[1]) try: - if len(positioners)==0: + 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) + snaps=SNAPS, diags=DIAGS, monitors=MONITORS, keep=True) + 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, \ @@ -103,3 +104,4 @@ try: finally: scienta.zeroSupplies() +print ret