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
}