This commit is contained in:
gac-iss
2020-01-20 16:46:59 +01:00
parent 4f5fe44208
commit 3cf3479d3b
8 changed files with 211 additions and 77 deletions

View File

@@ -1,34 +1,34 @@
#Fri Jan 17 13:58:28 CET 2020
autoSaveScanData=true
commandExecutionEvents=false
createSessionFiles=false
dataLayout=fda
dataPath={data}/{year}_{month}/{date}/{date}_{time}_{name}
dataProvider=fda
dataScanFlushRecords=false
dataScanPreserveTypes=true
dataScanReleaseRecords=false
dataServerPort=-1
depthDimension=0
hideServerMessages=false
hostName=null
instanceName=NanoXAS
logDaysToLive=30
logLevel=Fine
logLevelConsole=Off
logPath={logs}/{date}_{time}
notificationLevel=Off
parallelInitialization=false
saveCommandStatistics=false
scanStreamerPort=-1
serverEnabled=false
serverPort=8080
simulation=false
terminalEnabled=false
terminalPort=3579
userAuthenticator=ch.psi.pshell.security.LdapAuthenticator | ldap\\\\\\\://d.psi.ch | d.psi.ch | users.psi
userManagement=false
versionTrackingEnabled=true
versionTrackingLogin={context}/svcusr-hlapp_robot
versionTrackingManual=true
versionTrackingRemote=git@git.psi.ch\:pshell_config/x07db.git
#Mon Jan 20 16:34:54 CET 2020
autoSaveScanData=true
simulation=false
commandExecutionEvents=false
logDaysToLive=30
userAuthenticator=ch.psi.pshell.security.LdapAuthenticator | ldap\\\\\\\://d.psi.ch | d.psi.ch | users.psi
logLevelConsole=Off
scanStreamerPort=-1
parallelInitialization=false
versionTrackingManual=true
hostName=null
userManagement=false
instanceName=NanoXAS
dataServerPort=-1
hideServerMessages=false
serverPort=8080
versionTrackingEnabled=true
dataPath={data}/{year}/NEXAFS/{year}_{month}/{date}/{seq}_{date}_{time}_{name}
serverEnabled=false
dataScanReleaseRecords=false
depthDimension=0
dataScanPreserveTypes=true
logLevel=Fine
dataScanFlushRecords=false
logPath={logs}/{date}_{time}
dataLayout=default
terminalEnabled=false
notificationLevel=Off
terminalPort=3579
createSessionFiles=false
versionTrackingLogin={context}/svcusr-hlapp_robot
versionTrackingRemote=git@git.psi.ch\:pshell_config/x07db.git
dataProvider=h5
saveCommandStatistics=false

View File

@@ -1,5 +1,13 @@
i0=ch.psi.pshell.epics.ChannelDouble|X11MA-KEI10:READOUT|Read||true
i0=ch.psi.pshell.epics.ChannelDouble|X07DB-KEI10:READOUT|Read||true
capture=ch.psi.pshell.epics.ChannelInteger|NAPP-SCIENTA:HDF1:Capture|||true
energy=ch.psi.pshell.epics.Positioner|X07DB-OP-MONO:ENERGY X07DB-OP-MONO:ERBK|||true
scienta=Scienta|NAPP-SCIENTA|||true
spectrum=ch.psi.pshell.imaging.CameraSource|scienta||-500|false
spectrum=ch.psi.pshell.imaging.CameraSource|scienta|||true
AcquisitionMode=ch.psi.pshell.epics.ChannelString|NAPP-SCIENTA:cam1:ACQ_MODE_RBV|||
EnergyMode=ch.psi.pshell.epics.ChannelString|NAPP-SCIENTA:cam1:ENERGY_MODE_RBV|||
LensMode=ch.psi.pshell.epics.ChannelString|NAPP-SCIENTA:cam1:LENS_MODE_RBV|||
DetectorMode=ch.psi.pshell.epics.ChannelString|NAPP-SCIENTA:cam1:DETECTOR_MODE_RBV|||
PassEnergy=ch.psi.pshell.epics.ChannelString|NAPP-SCIENTA:cam1:PASS_ENERGY_RBV|||
ElementSet=ch.psi.pshell.epics.ChannelString|NAPP-SCIENTA:cam1:ELEMENT_SET_RBV|||
StepSize=ch.psi.pshell.epics.ChannelDouble|NAPP-SCIENTA:cam1:STEP_SIZE_RBV|||
NumIterations=ch.psi.pshell.epics.ChannelDouble|NAPP-SCIENTA:cam1:NumExposures_RBV|||

View File

@@ -8,7 +8,7 @@ contextPath={outp}/context
configFilePlugins={config}/plugins.properties
extensionsPath={home}/extensions
configPath={home}/config
dataPath={outp}/data
dataPath=M:\SC Data
devicesPath={home}/devices
configFileVariables={config}/variables.properties
configFileSettings={config}/settings.properties

View File

@@ -1,2 +1,2 @@
#Fri Jan 17 16:44:03 CET 2020
FileSequentialNumber=52
#Mon Jan 20 16:41:58 CET 2020
FileSequentialNumber=2

View File

@@ -30,17 +30,23 @@
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jPanel1" alignment="0" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="32767" attributes="0"/>
<Component id="buttonStart" linkSize="3" min="-2" pref="150" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="33" max="-2" attributes="0"/>
<Component id="buttonAbort" linkSize="3" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="0" pref="2" max="32767" attributes="0"/>
<Component id="buttonStart" linkSize="3" min="-2" pref="150" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="33" max="-2" attributes="0"/>
<Component id="buttonAbort" linkSize="3" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="2" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="checkAutoSaveArgs" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="buttonScienta" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Component id="checkAutoSaveArgs" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -49,7 +55,10 @@
<Group type="102" alignment="1" attributes="0">
<Component id="jPanel1" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="checkAutoSaveArgs" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="checkAutoSaveArgs" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonScienta" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="unrelated" max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonStart" alignment="3" min="-2" max="-2" attributes="0"/>
@@ -97,7 +106,7 @@
<Component id="buttonAdd" linkSize="2" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="buttonDelete" linkSize="2" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="15" max="32767" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="buttonOpen" linkSize="2" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="buttonSave" linkSize="2" min="-2" max="-2" attributes="0"/>
@@ -111,15 +120,17 @@
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jScrollPane1" pref="138" max="32767" attributes="0"/>
<Component id="jScrollPane1" pref="130" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonAdd" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonDelete" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" alignment="3" groupAlignment="3" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="103" alignment="0" groupAlignment="3" attributes="0">
<Component id="buttonOpen" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonSave" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonAdd" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonDelete" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
@@ -186,5 +197,13 @@
<Property name="text" type="java.lang.String" value="Auto save scan parameters"/>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="buttonScienta">
<Properties>
<Property name="text" type="java.lang.String" value="Scienta Panel"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonScientaActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Form>

View File

@@ -27,7 +27,7 @@ public class EnergyScan extends Panel {
Positioner energy;
File currentFile;
public static final String FILE_EXTENSION = "ens";
public static final String DEFAULT_FOLDER = "{data}";
public static final String DEFAULT_FOLDER = "{home}/parameters";
public EnergyScan() {
initComponents();
@@ -44,6 +44,7 @@ public class EnergyScan extends Panel {
public void onStateChange(State state, State former) {
buttonStart.setEnabled(state==State.Ready);
buttonAbort.setEnabled(state.isProcessing());
buttonScienta.setEnabled(state.isInitialized());
}
@Override
@@ -169,6 +170,7 @@ public class EnergyScan extends Panel {
buttonOpen = new javax.swing.JButton();
buttonSave = new javax.swing.JButton();
checkAutoSaveArgs = new javax.swing.JCheckBox();
buttonScienta = new javax.swing.JButton();
jScrollPane2.setViewportView(jEditorPane1);
@@ -246,7 +248,7 @@ public class EnergyScan extends Panel {
.addComponent(buttonAdd)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonDelete)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 15, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonOpen)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonSave)))
@@ -259,34 +261,46 @@ public class EnergyScan extends Panel {
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 138, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonAdd)
.addComponent(buttonDelete)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonOpen)
.addComponent(buttonSave)))
.addComponent(buttonSave))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonAdd)
.addComponent(buttonDelete)))
.addContainerGap())
);
checkAutoSaveArgs.setText("Auto save scan parameters");
buttonScienta.setText("Scienta Panel");
buttonScienta.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonScientaActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonStart, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(33, 33, 33)
.addComponent(buttonAbort)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(checkAutoSaveArgs)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 2, Short.MAX_VALUE)
.addComponent(buttonStart, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(33, 33, 33)
.addComponent(buttonAbort)
.addGap(0, 2, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addComponent(checkAutoSaveArgs)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonScienta)))
.addContainerGap())
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonAbort, buttonStart});
@@ -296,7 +310,9 @@ public class EnergyScan extends Panel {
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(checkAutoSaveArgs)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(checkAutoSaveArgs)
.addComponent(buttonScienta))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonStart)
@@ -356,12 +372,21 @@ public class EnergyScan extends Panel {
}
}//GEN-LAST:event_buttonSaveActionPerformed
private void buttonScientaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonScientaActionPerformed
try{
this.showDevicePanel("scienta");
} catch (Exception ex){
showException(ex);
}
}//GEN-LAST:event_buttonScientaActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton buttonAbort;
private javax.swing.JButton buttonAdd;
private javax.swing.JButton buttonDelete;
private javax.swing.JButton buttonOpen;
private javax.swing.JButton buttonSave;
private javax.swing.JButton buttonScienta;
private javax.swing.JButton buttonStart;
private javax.swing.JCheckBox checkAutoSaveArgs;
private javax.swing.JEditorPane jEditorPane1;

View File

@@ -1,4 +1,77 @@
###################################################################################################
# Deployment specific global definitions - executed after startup.py
###################################################################################################
import ch.psi.pshell.epics.ChannelString as ChannelString
import ch.psi.pshell.epics.ChannelDouble as ChannelDouble
scienta.getDataArray().setMonitored(True)
# Handlig diagnostics
diag_channels = []
diag_channels.append(scienta.channelBegin)
diag_channels.append(scienta.channelEnd)
diag_channels.append(scienta.sliceBegin)
diag_channels.append(scienta.sliceEnd)
diag_channels.append(scienta.numSlices)
diag_channels.append(scienta.numChannels)
diag_channels.append(scienta.lowEnergy)
diag_channels.append(scienta.centerEnergy)
diag_channels.append(scienta.highEnergy)
diag_channels.append(AcquisitionMode)
diag_channels.append(EnergyMode)
diag_channels.append(LensMode)
diag_channels.append(DetectorMode)
diag_channels.append(PassEnergy)
diag_channels.append(ElementSet)
diag_channels.append(StepSize)
diag_channels.append(NumIterations)
diag_channels = sorted(diag_channels, key=lambda channel: channel.name)
def get_diag_name(diag):
return ch.psi.utils.Str.toTitleCase(diag.getName()).replace(" ", "").replace("Readback", "")
def print_diag():
for f in diag_channels:
print "%-25s %s" % (get_diag_name(f) , str(f.read()))
def create_diag_datasets(parent = None):
if parent is None:
parent = get_exec_pars().group
group = parent + "attrs/"
for f in diag_channels:
create_dataset(group+get_diag_name(f) , 's' if (type(f) is ch.psi.pshell.epics.ChannelString) else 'd')
def append_diag_datasets(parent = None):
if parent is None:
parent = get_exec_pars().group
group = parent + "attrs/"
for f in diag_channels:
try:
x = f.read()
if x is None:
x = '' if (type(f) is ch.psi.pshell.epics.ChannelString) else float('nan')
append_dataset(group+get_diag_name(f), x)
except:
log("Error sampling " + str(get_diag_name(f)) + ": " + str(sys.exc_info()[1]))
def after_readout(rec):
#if beam_ok:
if get_exec_pars().save:
#Saving only once the diag data
if rec.index == 0:
create_diag_datasets()
append_diag_datasets()
#else:
# rec.invalidate()

View File

@@ -1,20 +1,29 @@
if get_exec_pars().source == CommandSource.ui:
REGIONS = [[523.0, 527.0, 2.0], [527.0, 535.0, 4.0], [535.0, 558.0, 2.0]]
NAME = None
IOC_AUTO_SAVE = False
sensors=[i0, scienta.stats[0], scienta.getSpectrum()]
set_device_alias(scienta.getSpectrum(), "spectrum")
set_device_alias(scienta.getDataMatrix(), "image")
set_device_alias(scienta.stats[0], "sum")
sensors=[i0, scienta.stats[0], scienta.getSpectrum()] #), scienta.getDataMatrix()]
capture.write(1)
if IOC_AUTO_SAVE:
capture.write(1)
def trigger(position, scan):
scienta.start()
cienta.waitNewImage(-1)
scienta.waitNewImage(-1)
try:
rscan(energy, sensors, REGIONS, latency = 0.0, before_read=trigger)
rscan(energy, sensors, REGIONS, latency = 0.0, before_read=trigger, after_read=after_readout, name = NAME)
finally:
capture.write(0)
if IOC_AUTO_SAVE:
capture.write(0)
scienta.zeroSupplies()