This commit is contained in:
gobbo_a
2017-09-22 10:58:17 +02:00
parent 0c1d63ae9a
commit 5a7afde16f
40 changed files with 975 additions and 483 deletions
+5 -4
View File
@@ -329,10 +329,11 @@
<Component class="javax.swing.JComboBox" name="comboSource">
<Properties>
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="3">
<StringItem index="0" value="camtool"/>
<StringItem index="1" value="direct"/>
<StringItem index="2" value="bpm"/>
<StringArray count="4">
<StringItem index="0" value="server"/>
<StringItem index="1" value="camtool"/>
<StringItem index="2" value="direct"/>
<StringItem index="3" value="bpm"/>
</StringArray>
</Property>
</Properties>
+1 -1
View File
@@ -165,7 +165,7 @@ public class GunSolenoidAlignment extends Panel {
jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel7.setText("Settling time:");
comboSource.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "camtool", "direct", "bpm" }));
comboSource.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "server", "camtool", "direct", "bpm" }));
javax.swing.GroupLayout panelParametersLayout = new javax.swing.GroupLayout(panelParameters);
panelParameters.setLayout(panelParametersLayout);
+5 -4
View File
@@ -315,10 +315,11 @@
<Component class="javax.swing.JComboBox" name="comboSource">
<Properties>
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="3">
<StringItem index="0" value="camtool"/>
<StringItem index="1" value="direct"/>
<StringItem index="2" value="bpm"/>
<StringArray count="4">
<StringItem index="0" value="server"/>
<StringItem index="1" value="camtool"/>
<StringItem index="2" value="direct"/>
<StringItem index="3" value="bpm"/>
</StringArray>
</Property>
</Properties>
+1 -1
View File
@@ -165,7 +165,7 @@ public class LaserGunAlignment extends Panel {
jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel7.setText("Source:");
comboSource.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "camtool", "direct", "bpm" }));
comboSource.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "server", "camtool", "direct", "bpm" }));
javax.swing.GroupLayout panelParametersLayout = new javax.swing.GroupLayout(panelParameters);
panelParameters.setLayout(panelParametersLayout);
+5 -5
View File
@@ -158,7 +158,7 @@
<Component class="javax.swing.JSpinner" name="spinnerStep">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="5.0" maximum="90.0" minimum="1.0" numberType="java.lang.Double" stepSize="1.0" type="number"/>
<SpinnerModel initial="5.0" maximum="20.0" minimum="0.1" numberType="java.lang.Double" stepSize="0.1" type="number"/>
</Property>
</Properties>
</Component>
@@ -177,7 +177,7 @@
<Component class="javax.swing.JSpinner" name="spinnerStop">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="180.0" maximum="360.0" minimum="-180.0" numberType="java.lang.Double" stepSize="1.0" type="number"/>
<SpinnerModel initial="150.0" maximum="360.0" minimum="-180.0" numberType="java.lang.Double" stepSize="1.0" type="number"/>
</Property>
</Properties>
</Component>
@@ -196,7 +196,7 @@
<Component class="javax.swing.JSpinner" name="spinnerLatency">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="0.1" maximum="5.0" minimum="0.0" numberType="java.lang.Double" stepSize="0.01" type="number"/>
<SpinnerModel initial="0.15" maximum="5.0" minimum="0.0" numberType="java.lang.Double" stepSize="0.01" type="number"/>
</Property>
</Properties>
</Component>
@@ -216,7 +216,7 @@
<Component class="javax.swing.JSpinner" name="spinnerStart">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="0.0" maximum="360.0" minimum="-180.0" numberType="java.lang.Double" stepSize="1.0" type="number"/>
<SpinnerModel initial="-10.0" maximum="360.0" minimum="-180.0" numberType="java.lang.Double" stepSize="1.0" type="number"/>
</Property>
</Properties>
</Component>
@@ -278,7 +278,7 @@
<Component class="javax.swing.JSpinner" name="spinnerPhaseRef">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="0.0" maximum="360.0" minimum="-180.0" numberType="java.lang.Double" stepSize="1.0" type="number"/>
<SpinnerModel initial="0.0" maximum="360.0" minimum="-180.0" numberType="java.lang.Double" stepSize="0.1" type="number"/>
</Property>
</Properties>
<Events>
+5 -5
View File
@@ -102,7 +102,7 @@ public class SchottkyScan extends Panel {
panelPars.setBorder(javax.swing.BorderFactory.createTitledBorder("Parameters (beam phase)"));
spinnerStep.setModel(new javax.swing.SpinnerNumberModel(5.0d, 1.0d, 90.0d, 1.0d));
spinnerStep.setModel(new javax.swing.SpinnerNumberModel(5.0d, 0.1d, 20.0d, 0.1d));
labelLatency.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
labelLatency.setText("Latency:");
@@ -110,7 +110,7 @@ public class SchottkyScan extends Panel {
labelStart.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
labelStart.setText("Start:");
spinnerStop.setModel(new javax.swing.SpinnerNumberModel(180.0d, -180.0d, 360.0d, 1.0d));
spinnerStop.setModel(new javax.swing.SpinnerNumberModel(150.0d, -180.0d, 360.0d, 1.0d));
labelStep.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
labelStep.setText("Step size:");
@@ -118,14 +118,14 @@ public class SchottkyScan extends Panel {
labelStop.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
labelStop.setText("Stop:");
spinnerLatency.setModel(new javax.swing.SpinnerNumberModel(0.1d, 0.0d, 5.0d, 0.01d));
spinnerLatency.setModel(new javax.swing.SpinnerNumberModel(0.15d, 0.0d, 5.0d, 0.01d));
spinnerSamples.setModel(new javax.swing.SpinnerNumberModel(1, 1, 50, 1));
labelSamples.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
labelSamples.setText("Nb Samples:");
spinnerStart.setModel(new javax.swing.SpinnerNumberModel(0.0d, -180.0d, 360.0d, 1.0d));
spinnerStart.setModel(new javax.swing.SpinnerNumberModel(-10.0d, -180.0d, 360.0d, 1.0d));
javax.swing.GroupLayout panelParsLayout = new javax.swing.GroupLayout(panelPars);
panelPars.setLayout(panelParsLayout);
@@ -194,7 +194,7 @@ public class SchottkyScan extends Panel {
labelRefPhase.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
labelRefPhase.setText("Ref Phase:");
spinnerPhaseRef.setModel(new javax.swing.SpinnerNumberModel(0.0d, -180.0d, 360.0d, 1.0d));
spinnerPhaseRef.setModel(new javax.swing.SpinnerNumberModel(0.0d, -180.0d, 360.0d, 0.1d));
spinnerPhaseRef.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
spinnerPhaseRefStateChanged(evt);
+22 -14
View File
@@ -2,6 +2,7 @@
* Copyright (c) 2014 Paul Scherrer Institute. All rights reserved.
*/
import ch.psi.pshell.bs.CameraServer;
import ch.psi.pshell.core.Context;
import java.io.IOException;
import java.nio.file.Paths;
@@ -14,6 +15,7 @@ import ch.psi.utils.swing.SwingUtils;
import ch.psi.utils.swing.TextEditor;
import ch.psi.pshell.bs.PipelineServer;
import ch.psi.pshell.bs.StreamValue;
import ch.psi.pshell.core.JsonSerializer;
import ch.psi.pshell.device.DescStatsDouble;
import ch.psi.pshell.device.Device;
import ch.psi.pshell.epics.ChannelInteger;
@@ -104,8 +106,7 @@ public class ScreenPanel extends Panel {
String userOverlaysConfigFile;
ColormapSource camera;
PipelineServer server;
String cameraName;
String cameraConfigJson;
String cameraName;
int polling = 1000;
Overlay marker = null;
JDialog histogramDialog;
@@ -450,16 +451,13 @@ public class ScreenPanel extends Panel {
DefaultComboBoxModel getCameraList(boolean fromServer) throws Exception {
DefaultComboBoxModel model = new DefaultComboBoxModel();
if (fromServer){
PipelineServer server = newServer();
try {
server.initialize();
List<String> cameras = server.getCameras();
try (PipelineServer srv = newServer()){
srv.initialize();
List<String> cameras = srv.getCameras();
Collections.sort(cameras);
for (String camera : cameras) {
model.addElement(camera);
}
} finally {
server.close();
}
} else {
@@ -625,10 +623,6 @@ public class ScreenPanel extends Panel {
try {
String configFolder = (String) getContext().getClassByName("SfCamera").getMethod("getConfigFolder", new Class[]{}).invoke(null);
Path configFile = Paths.get(configFolder, cameraName + ".json");
cameraConfigJson = configFile.toFile().exists() ? new String(Files.readAllBytes(configFile)) : null;
if (buttonServer.isSelected()) {
camera = newServer();
camera.getConfig().flipHorizontally = false;
@@ -640,7 +634,7 @@ public class ScreenPanel extends Panel {
camera.getConfig().roiHeight = -1;
} else {
//camera = new SfCamera(CAMERA_DEVICE_NAME, cameraName);
camera = (ColormapSource) getContext().getClassByName("SfCamera").getConstructor(new Class[]{String.class, String.class}).newInstance(new Object[]{CAMERA_DEVICE_NAME, cameraName});
camera = (ColormapSource) getContext().getClassByName("SfCamera").getConstructor(new Class[]{String.class, String.class}).newInstance(new Object[]{CAMERA_DEVICE_NAME, cameraName});
}
camera.initialize();
camera.assertInitialized();
@@ -2528,6 +2522,20 @@ public class ScreenPanel extends Panel {
private void buttonArgsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonArgsActionPerformed
try {
if (camera != null) {
String cameraConfigJson = null;
if (usingServer){
String cameraServerUrl = server.getUrl().substring(0, server.getUrl().length()-1) + "8";
try (CameraServer srv = new CameraServer("CamServer", cameraServerUrl)){
srv.initialize();
//TODO: replace into encodeMultiline
cameraConfigJson = JsonSerializer.encode(srv.getConfig(cameraName), true);
}
} else {
String configFolder = (String) getContext().getClassByName("SfCamera").getMethod("getConfigFolder", new Class[]{}).invoke(null);
Path configFile = Paths.get(configFolder, cameraName + ".json");
cameraConfigJson = configFile.toFile().exists() ? new String(Files.readAllBytes(configFile)) : null;
}
TextEditor editor = new TextEditor();
editor.setText(cameraConfigJson);
editor.setReadOnly(true);
@@ -2628,7 +2636,7 @@ public class ScreenPanel extends Panel {
try {
System.out.println("Grabbing background for: " + cameraName);
if (server!=null){
server.captureBackground(cameraName, 5);
server.captureBackground(5);
} else {
camera.captureBackground(5, 0);
}