Puk detetion modes

This commit is contained in:
alexgobbo
2025-08-13 10:54:54 +02:00
parent a8f0508daa
commit 68c510e707
6 changed files with 227 additions and 6 deletions

View File

@@ -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
}