diff --git a/devices/CurrentCamera.properties b/devices/CurrentCamera.properties index 9f4f1ca..07c04aa 100755 --- a/devices/CurrentCamera.properties +++ b/devices/CurrentCamera.properties @@ -1,5 +1,5 @@ -#Thu Aug 08 11:28:24 CEST 2019 -colormap=Temperature +#Tue Aug 27 11:25:40 CEST 2019 +colormap=Flame colormapAutomatic=true colormapLogarithmic=false colormapMax=58981.0 diff --git a/plugins/AthosCameras.form b/plugins/AthosCameras.form index 8d1a227..401f923 100644 --- a/plugins/AthosCameras.form +++ b/plugins/AthosCameras.form @@ -16,63 +16,36 @@ - - + + + + - - - - - - - - - - - - - - - + + + + - - - - - - - - + - - - - - - - - - - - - + + - - - - - - - - - - + + + + + + + + + @@ -80,49 +53,285 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/AthosCameras.java b/plugins/AthosCameras.java index d40796f..402603d 100644 --- a/plugins/AthosCameras.java +++ b/plugins/AthosCameras.java @@ -3,8 +3,6 @@ import ch.psi.pshell.bs.StreamValue; import ch.psi.pshell.core.CommandSource; import ch.psi.pshell.device.Device; import ch.psi.pshell.device.DeviceAdapter; -import ch.psi.pshell.device.DeviceListener; -import ch.psi.pshell.imaging.ColormapSource; import ch.psi.pshell.imaging.Overlay; import ch.psi.pshell.imaging.Overlays; import ch.psi.pshell.scan.MonitorScan; @@ -22,10 +20,10 @@ import java.io.File; import java.io.IOException; import java.nio.file.Paths; import java.util.HashMap; -import java.util.concurrent.Future; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.ImageIcon; +import javax.swing.SwingUtilities; /** * @@ -49,7 +47,8 @@ public class AthosCameras extends Panel { public AthosCameras() { initComponents(); - + labelRecording.setVisible(false); + buttonOpen.setEnabled(false); } ImageIcon getIcon(String name){ @@ -107,9 +106,11 @@ public class AthosCameras extends Panel { this.cameraName = cameraName; + textCamera.setText((cameraName == null) ? "" : cameraName); if (cameraName == null) { return; } + System.out.println("Setting camera: " + cameraName ); try{ @@ -154,7 +155,8 @@ public class AthosCameras extends Panel { System.out.println("Creating pipeline: " + pipelineName); HashMap config = new HashMap<>(); config.put("camera_name", cameraName); - config.put("include", new String[]{"x_center_of_mass", "y_center_of_mass"}); + config.put("include", new String[]{"x_center_of_mass", "y_center_of_mass", + "x_fit_mean", "y_fit_mean"}); //server.createFromConfig(config, pipelineName); dataPipeline.savePipelineConfig(pipelineName, config); } @@ -171,15 +173,12 @@ public class AthosCameras extends Panel { showException(ex); renderer.clearOverlays(); if (renderer.getDevice() == null) { - //renderer.setZoom(1.0); - //renderer.setMode(RendererMode.Zoom); errorOverlay = new Overlays.Text(renderer.getPenErrorText(), ex.toString(), new Font("Verdana", Font.PLAIN, 12), new Point(20, 20)); errorOverlay.setFixed(true); errorOverlay.setAnchor(Overlay.ANCHOR_VIEWPORT_TOP_LEFT); renderer.addOverlay(errorOverlay); } } finally { - //checkReticle(); onTimer(); } } @@ -189,7 +188,6 @@ public class AthosCameras extends Panel { } void updateData(StreamValue value){ - //System.exit(0); try{ edit_x_center_of_mass.setText(getDoubleStr(value, "x_center_of_mass")); } catch (Exception ex){ @@ -200,6 +198,16 @@ public class AthosCameras extends Panel { } catch (Exception ex){ edit_y_center_of_mass.setText(""); } + try{ + edit_x_fit_mean.setText(getDoubleStr(value, "x_fit_mean")); + } catch (Exception ex){ + edit_x_fit_mean.setText(""); + } + try{ + edit_y_fit_mean.setText(getDoubleStr(value, "y_fit_mean")); + } catch (Exception ex){ + edit_y_fit_mean.setText(""); + } } MonitorScan scan; @@ -210,23 +218,26 @@ public class AthosCameras extends Panel { getContext().setExecutionPar("name", cameraName); getContext().setExecutionPar("open", true); scan= new MonitorScan(dataPipeline.getStream(), dataPipeline.getStream().getReadables().toArray(new ch.psi.pshell.device.Readable[0]), -1, -1); - Threading.getFuture(() ->scan.start()); - - DataPanel panel = DataPanel.create(new File(getContext().getExecutionPars().getPath())); - SwingUtils.showDialog(getTopLevel(), getContext().getExecutionPars().getPath(), new Dimension(800,600), panel); - + Threading.getFuture(() ->scan.start()); + textFile.setText(getContext().getExecutionPars().getPath()); + SwingUtilities.invokeLater(()->{ + scrollFile.getHorizontalScrollBar().setValue( scrollFile.getHorizontalScrollBar().getMaximum() ); + }); + buttonOpen.setEnabled(true); } void stopRecording() throws Exception{ System.out.println("stopRecording"); scan.abort(); - - //showMessage("Data recording", "Data saved to: " + getContext().getExecutionPars().getPath()); - - getContext().endExecution(); } + void openFile() throws Exception{ + String filename = textFile.getText(); + DataPanel panel = DataPanel.create(new File(filename)); + SwingUtils.showDialog(getTopLevel(), filename, new Dimension(600,400), panel); + } + @SuppressWarnings("unchecked") @@ -234,22 +245,27 @@ public class AthosCameras extends Panel { private void initComponents() { renderer = new ch.psi.pshell.imaging.Renderer(); + jPanel1 = new javax.swing.JPanel(); + buttonRec = new javax.swing.JToggleButton(); + buttonStop = new javax.swing.JButton(); + jPanel3 = new javax.swing.JPanel(); + labelRecording = new javax.swing.JLabel(); + buttonOpen = new javax.swing.JButton(); + scrollFile = new javax.swing.JScrollPane(); + textFile = new javax.swing.JTextField(); + jPanel2 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); edit_y_center_of_mass = new javax.swing.JTextField(); edit_x_center_of_mass = new javax.swing.JTextField(); - buttonRec = new javax.swing.JToggleButton(); - buttonStop = new javax.swing.JButton(); + jLabel3 = new javax.swing.JLabel(); + edit_x_fit_mean = new javax.swing.JTextField(); + edit_y_fit_mean = new javax.swing.JTextField(); + jLabel4 = new javax.swing.JLabel(); + jPanel4 = new javax.swing.JPanel(); + textCamera = new javax.swing.JTextField(); - jLabel1.setText("x_center_of_mass:"); - - jLabel2.setText("y_center_of_mass:"); - - edit_y_center_of_mass.setEditable(false); - edit_y_center_of_mass.setHorizontalAlignment(javax.swing.JTextField.TRAILING); - - edit_x_center_of_mass.setEditable(false); - edit_x_center_of_mass.setHorizontalAlignment(javax.swing.JTextField.TRAILING); + jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Data Recording")); buttonRec.setIcon(getIcon("Rec")); buttonRec.setToolTipText("Start Data Recording"); @@ -267,59 +283,195 @@ public class AthosCameras extends Panel { } }); + labelRecording.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N + labelRecording.setForeground(new java.awt.Color(255, 0, 0)); + labelRecording.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + labelRecording.setText("RECORDING"); + + javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); + jPanel3.setLayout(jPanel3Layout); + jPanel3Layout.setHorizontalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createSequentialGroup() + .addGap(0, 0, 0) + .addComponent(labelRecording, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGap(0, 0, 0)) + ); + jPanel3Layout.setVerticalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createSequentialGroup() + .addContainerGap() + .addComponent(labelRecording, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap()) + ); + + buttonOpen.setText("Open Data File"); + buttonOpen.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonOpenActionPerformed(evt); + } + }); + + scrollFile.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollFile.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); + + textFile.setEditable(false); + scrollFile.setViewportView(textFile); + + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); + jPanel1.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup( + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(scrollFile, javax.swing.GroupLayout.PREFERRED_SIZE, 281, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(jPanel1Layout.createSequentialGroup() + .addComponent(buttonRec) + .addGap(2, 2, 2) + .addComponent(buttonStop) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(buttonOpen))) + .addContainerGap()) + ); + jPanel1Layout.setVerticalGroup( + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addComponent(buttonRec, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonStop, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(scrollFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(buttonOpen) + .addContainerGap()) + ); + + jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Data Fields")); + + jLabel1.setText("x_center_of_mass:"); + + jLabel2.setText("y_center_of_mass:"); + + edit_y_center_of_mass.setEditable(false); + edit_y_center_of_mass.setHorizontalAlignment(javax.swing.JTextField.TRAILING); + + edit_x_center_of_mass.setEditable(false); + edit_x_center_of_mass.setHorizontalAlignment(javax.swing.JTextField.TRAILING); + + jLabel3.setText("x_fit_mean:"); + + edit_x_fit_mean.setEditable(false); + edit_x_fit_mean.setHorizontalAlignment(javax.swing.JTextField.TRAILING); + + edit_y_fit_mean.setEditable(false); + edit_y_fit_mean.setHorizontalAlignment(javax.swing.JTextField.TRAILING); + + jLabel4.setText("y_fit_mean"); + + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() + .addContainerGap(19, Short.MAX_VALUE) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel1) + .addComponent(jLabel2) + .addComponent(jLabel3) + .addComponent(jLabel4)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(edit_y_center_of_mass, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(edit_x_center_of_mass, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(edit_x_fit_mean, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(edit_y_fit_mean, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(20, Short.MAX_VALUE)) + ); + jPanel2Layout.setVerticalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addGap(30, 30, 30) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel1) + .addComponent(edit_x_center_of_mass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel2) + .addComponent(edit_y_center_of_mass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel3) + .addComponent(edit_x_fit_mean, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel4) + .addComponent(edit_y_fit_mean, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(33, Short.MAX_VALUE)) + ); + + jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Camera")); + + textCamera.setHorizontalAlignment(javax.swing.JTextField.CENTER); + + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); + jPanel4.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup( + jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel4Layout.createSequentialGroup() + .addContainerGap() + .addComponent(textCamera) + .addContainerGap()) + ); + jPanel4Layout.setVerticalGroup( + jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel4Layout.createSequentialGroup() + .addContainerGap() + .addComponent(textCamera, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + ); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addContainerGap(582, Short.MAX_VALUE) + .addContainerGap() + .addComponent(renderer, javax.swing.GroupLayout.DEFAULT_SIZE, 505, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel1) - .addComponent(jLabel2)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(edit_y_center_of_mass, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(edit_x_center_of_mass, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addGroup(layout.createSequentialGroup() - .addComponent(buttonRec) - .addGap(2, 2, 2) - .addComponent(buttonStop))) - .addGap(72, 72, 72)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(renderer, javax.swing.GroupLayout.PREFERRED_SIZE, 462, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(440, Short.MAX_VALUE))) + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(132, 132, 132) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel1) - .addComponent(edit_x_center_of_mass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel2) - .addComponent(edit_y_center_of_mass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(123, 123, 123) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(buttonRec) - .addComponent(buttonStop)) - .addContainerGap(190, Short.MAX_VALUE)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(renderer, javax.swing.GroupLayout.DEFAULT_SIZE, 520, Short.MAX_VALUE) - .addContainerGap())) + .addComponent(renderer, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addContainerGap()) ); }// //GEN-END:initComponents private void buttonRecActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRecActionPerformed try{ buttonStop.setEnabled(buttonRec.isSelected()); + labelRecording.setVisible(buttonRec.isSelected()); if (buttonRec.isSelected()){ startRecording(); } else { @@ -335,13 +487,34 @@ public class AthosCameras extends Panel { buttonRecActionPerformed(null); }//GEN-LAST:event_buttonStopActionPerformed + private void buttonOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonOpenActionPerformed + try{ + openFile(); + } catch (Exception ex){ + this.showException(ex); + } + }//GEN-LAST:event_buttonOpenActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton buttonOpen; private javax.swing.JToggleButton buttonRec; private javax.swing.JButton buttonStop; private javax.swing.JTextField edit_x_center_of_mass; + private javax.swing.JTextField edit_x_fit_mean; private javax.swing.JTextField edit_y_center_of_mass; + private javax.swing.JTextField edit_y_fit_mean; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; + private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; + private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel2; + private javax.swing.JPanel jPanel3; + private javax.swing.JPanel jPanel4; + private javax.swing.JLabel labelRecording; private ch.psi.pshell.imaging.Renderer renderer; + private javax.swing.JScrollPane scrollFile; + private javax.swing.JTextField textCamera; + private javax.swing.JTextField textFile; // End of variables declaration//GEN-END:variables }