diff --git a/config/config.properties b/config/config.properties index 8f00aab..72097ee 100644 --- a/config/config.properties +++ b/config/config.properties @@ -1,4 +1,4 @@ -#Thu Aug 07 15:22:56 CEST 2025 +#Wed Aug 13 10:51:25 CEST 2025 commandExecutionEvents=false createSessionFiles=true dataDepthDimension=0 @@ -50,7 +50,7 @@ terminalPort=3579 userAuthenticator= userManagement=false versionTrackingEnabled=true -versionTrackingLogin={context}/pshell_user +versionTrackingLogin=auto versionTrackingManual=true versionTrackingRemote=https\://gitea.psi.ch/tell/x06da.git xscanAppendSuffix=true diff --git a/config/settings.properties b/config/settings.properties index fc8a433..fba1213 100644 --- a/config/settings.properties +++ b/config/settings.properties @@ -1,4 +1,4 @@ -#Fri Aug 08 10:40:26 CEST 2025 +#Wed Aug 13 10:52:38 CEST 2025 barcode_reader_scan_pucks=false beamline_status_enabled=false cold_position_timeout=3600 @@ -11,6 +11,7 @@ led_level=0.0 mounted_sample=A213 pin_cleaner_timer=60 pin_offset=0 +puck_detection=loading puck_types=true roi_h=400 roi_w=600 diff --git a/devices/cover_detection.properties b/devices/cover_detection.properties index 20080ee..d1f08a1 100644 --- a/devices/cover_detection.properties +++ b/devices/cover_detection.properties @@ -1,4 +1,4 @@ -#Fri Aug 08 10:40:27 CEST 2025 +#Wed Aug 13 10:52:40 CEST 2025 border_dewar=0.56 center_x=1020.0 center_y=1047.0 diff --git a/plugins/MXSC-2.0.0.jar b/plugins/MXSC-2.0.0.jar index 25c92df..5109bae 100644 Binary files a/plugins/MXSC-2.0.0.jar and b/plugins/MXSC-2.0.0.jar differ diff --git a/plugins/PuckDetectionPanel.form b/plugins/PuckDetectionPanel.form index 8045142..9f48bc0 100644 --- a/plugins/PuckDetectionPanel.form +++ b/plugins/PuckDetectionPanel.form @@ -19,6 +19,11 @@ + + + + + @@ -28,6 +33,8 @@ + + @@ -128,7 +135,7 @@ - + @@ -197,5 +204,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/PuckDetectionPanel.java b/plugins/PuckDetectionPanel.java index e095a34..4a44322 100644 --- a/plugins/PuckDetectionPanel.java +++ b/plugins/PuckDetectionPanel.java @@ -5,6 +5,7 @@ import ch.psi.mxsc.PuckState.SwitchState; import ch.psi.pshell.framework.Context; import ch.psi.pshell.swing.DevicePanel; import ch.psi.pshell.swing.SwingUtils; +import java.awt.Color; /** * @@ -19,6 +20,7 @@ public class PuckDetectionPanel extends DevicePanel { table.getModel().setValueAt(segment+puck, row++, 0); } } + this.startTimer(100); } @Override @@ -26,6 +28,14 @@ public class PuckDetectionPanel extends DevicePanel { return (PuckDetection) super.getDevice(); } + @Override + public void onTimer(){ + if ((getDevice()!=null) && getDevice().getState().isInitialized()){ + ledEnabled.setColor(getDevice().isEnabled() ? Color.GREEN : Color.DARK_GRAY); + } else { + ledEnabled.setColor(Color.BLACK); + } + } @Override protected void onDeviceCacheChanged(Object value, Object former, long timestamp, boolean arg3) { @@ -80,6 +90,12 @@ public class PuckDetectionPanel extends DevicePanel { table = new javax.swing.JTable(); buttonConfigure = new javax.swing.JButton(); deviceStatePanel1 = new ch.psi.pshell.swing.DeviceStatePanel(); + jPanel2 = new javax.swing.JPanel(); + ledEnabled = new ch.psi.pshell.swing.Led(); + jLabel1 = new javax.swing.JLabel(); + panelPowerCtr = new javax.swing.JPanel(); + buttonDisable = new javax.swing.JButton(); + buttonEnable = new javax.swing.JButton(); jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Raspberry Pi ")); @@ -211,7 +227,7 @@ public class PuckDetectionPanel extends DevicePanel { jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() - .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 282, Short.MAX_VALUE) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 251, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(buttonConfigure) .addContainerGap()) @@ -219,6 +235,71 @@ public class PuckDetectionPanel extends DevicePanel { deviceStatePanel1.setDeviceName("puck_detection"); + jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Enabling")); + + ledEnabled.setFont(new java.awt.Font("SansSerif", 0, 18)); // NOI18N + + jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel1.setText("Enabled"); + + buttonDisable.setText("Disable"); + buttonDisable.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonDisableActionPerformed(evt); + } + }); + + buttonEnable.setText("Enable"); + buttonEnable.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonEnableActionPerformed(evt); + } + }); + + javax.swing.GroupLayout panelPowerCtrLayout = new javax.swing.GroupLayout(panelPowerCtr); + panelPowerCtr.setLayout(panelPowerCtrLayout); + panelPowerCtrLayout.setHorizontalGroup( + panelPowerCtrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelPowerCtrLayout.createSequentialGroup() + .addGap(0, 0, 0) + .addComponent(buttonEnable) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE) + .addComponent(buttonDisable)) + ); + panelPowerCtrLayout.setVerticalGroup( + panelPowerCtrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelPowerCtrLayout.createSequentialGroup() + .addGap(0, 0, 0) + .addGroup(panelPowerCtrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addComponent(buttonDisable, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonEnable)) + .addGap(0, 0, 0)) + ); + + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addContainerGap() + .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(ledEnabled, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(panelPowerCtr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + jPanel2Layout.setVerticalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addGap(4, 4, 4) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel1) + .addComponent(ledEnabled, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(panelPowerCtr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(2, 2, 2)) + ); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( @@ -226,6 +307,10 @@ public class PuckDetectionPanel extends DevicePanel { .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(deviceStatePanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addGap(0, 0, 0) + .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGap(0, 0, 0)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -234,6 +319,8 @@ public class PuckDetectionPanel extends DevicePanel { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(0, 0, 0) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, 0) .addComponent(deviceStatePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0)) ); @@ -265,17 +352,45 @@ public class PuckDetectionPanel extends DevicePanel { }//GEN-LAST:event_buttonConfigureActionPerformed + private void buttonDisableActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDisableActionPerformed + try{ + getDevice().setEnabled(false); + } catch (Exception ex){ + this.showException(ex); + } + }//GEN-LAST:event_buttonDisableActionPerformed + + private void buttonEnableActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonEnableActionPerformed + try{ + getDevice().setEnabled(true); + } catch (Exception ex){ + this.showException(ex); + } + }//GEN-LAST:event_buttonEnableActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton buttonConfigure; + private javax.swing.JButton buttonDisable; + private javax.swing.JButton buttonDisable2; + private javax.swing.JButton buttonEnable; + private javax.swing.JButton buttonEnable2; private javax.swing.JButton buttonPuckDetCheck; private javax.swing.JButton buttonPuckDetStart; private javax.swing.JButton buttonPuckDetStop; private ch.psi.pshell.swing.DeviceStatePanel deviceStatePanel1; + private javax.swing.JLabel jLabel1; + private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; + private javax.swing.JPanel jPanel5; private javax.swing.JScrollPane jScrollPane1; + private ch.psi.pshell.swing.Led ledEnabled; + private ch.psi.pshell.swing.Led ledPowered2; + private javax.swing.JPanel panelPowerCtr; + private javax.swing.JPanel panelPowerCtr2; private javax.swing.JTable table; // End of variables declaration//GEN-END:variables }