This commit is contained in:
sfop
2017-02-23 14:40:57 +01:00
parent ccda44f1ed
commit 678ab59d7d
3 changed files with 59 additions and 31 deletions

View File

@@ -101,6 +101,7 @@ public class ScreenPanel extends Panel {
Overlay[] userOv;
Overlay[] fitOv;
Overlay errorOverlay;
boolean requestCameraListUpdate;
Double getCamtoolDouble(String name) {
return (Double) Convert.toDouble(((Camtool) camera).getValue(name));
@@ -330,6 +331,7 @@ public class ScreenPanel extends Panel {
try {
if (App.hasArgument("cam")) {
setComboCameraSelection(App.getArgumentValue("cam"));
comboCamerasActionPerformed(null);
}
} catch (Exception ex) {
ex.printStackTrace();
@@ -558,6 +560,9 @@ public class ScreenPanel extends Panel {
filter = null;
}
}
if (cameraName==null){
return;
}
try {
Path configFile = Paths.get(CONFIG_FOLDER, cameraName + ".json");
@@ -711,7 +716,8 @@ public class ScreenPanel extends Panel {
devicesInitTask = new Thread(() -> {
try {
screen = new DiscretePositioner("CurrentScreen", cameraName + ":SET_SCREEN1_POS", cameraName + ":GET_SCREEN1_POS");
screen.initialize();
screen.setMonitored(true);
screen.initialize();
DefaultComboBoxModel model = new DefaultComboBoxModel();
for (String pos : screen.getPositions()) {
model.addElement(pos);
@@ -729,7 +735,8 @@ public class ScreenPanel extends Panel {
try {
filter = new DiscretePositioner("CurrentFilter", cameraName + ":SET_FILTER", cameraName + ":GET_FILTER");
filter.initialize();
filter.setMonitored(true);
filter.initialize();
DefaultComboBoxModel model = new DefaultComboBoxModel();
for (String pos : filter.getPositions()) {
model.addElement(pos);
@@ -740,9 +747,9 @@ public class ScreenPanel extends Panel {
System.err.println(ex.getMessage());
filter = null;
}
comboFilter.setEnabled(filter != null);
comboFilter.setEnabled(filter != null);
valueFilter.setDevice(filter);
});
});
devicesInitTask.start();
}
@@ -2104,6 +2111,14 @@ public class ScreenPanel extends Panel {
new Thread(new Runnable() {
@Override
public void run() {
if (requestCameraListUpdate){
requestCameraListUpdate = false;
try {
updateCameraList();
} catch (Exception ex) {
ex.printStackTrace();
}
}
try {
setCamera(cameraName);
} catch (Exception ex) {
@@ -2316,7 +2331,7 @@ public class ScreenPanel extends Panel {
private void buttonCamtoolActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCamtoolActionPerformed
if (!usingCamtool){
usingCamtool = true;
updateCameraList();
requestCameraListUpdate = true;
}
comboCamerasActionPerformed(null);
}//GEN-LAST:event_buttonCamtoolActionPerformed
@@ -2324,37 +2339,50 @@ public class ScreenPanel extends Panel {
private void buttonDirectActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDirectActionPerformed
if (usingCamtool){
usingCamtool = false;
updateCameraList();
requestCameraListUpdate = true;
}
comboCamerasActionPerformed(null);
}//GEN-LAST:event_buttonDirectActionPerformed
private void comboScreenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboScreenActionPerformed
ChannelInteger setpoint = null;
try {
int index = comboScreen.getSelectedIndex();
setpoint = new ChannelInteger(null, cameraName + ":SET_SCREEN1_POS");
setpoint.initialize();
if (setpoint.read() != index) {
boolean laserOn = getLaserState();
if (laserOn) {
setLaserState(false);
}
try {
setpoint.write(index);
} finally {
if (laserOn) {
setLaserState(true);
comboScreen.setEnabled(false);
new Thread(new Runnable() {
@Override
public void run() {
ChannelInteger setpoint = null;
try {
int index = comboScreen.getSelectedIndex();
setpoint = new ChannelInteger(null, cameraName + ":SET_SCREEN1_POS");
setpoint.initialize();
if (setpoint.read() != index) {
setpoint.write(index);
//Must be threaded to control the laser because of sleep in setLaserState
/*
boolean laserOn = getLaserState();
if (laserOn) {
setLaserState(false);
}
try {
setpoint.write(index);
} finally {
if (laserOn) {
setLaserState(true);
}
}
*/
}
screen.read();
} catch (Exception ex) {
showException(ex);
} finally {
comboScreen.setEnabled(true);
if (setpoint != null) {
setpoint.close();
}
}
}
screen.read();
} catch (Exception ex) {
showException(ex);
}
if (setpoint != null) {
setpoint.close();
}
}).start();
}//GEN-LAST:event_comboScreenActionPerformed
private void comboFilterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboFilterActionPerformed