This commit is contained in:
+123
-29
@@ -1,6 +1,9 @@
|
||||
|
||||
import ch.psi.mxsc.Controller;
|
||||
import ch.psi.pshell.core.Context;
|
||||
import ch.psi.pshell.device.DeviceBase;
|
||||
import ch.psi.pshell.swing.DevicePanel;
|
||||
import java.awt.Color;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import javax.swing.border.TitledBorder;
|
||||
|
||||
@@ -11,46 +14,65 @@ public class WagoPanel extends DevicePanel {
|
||||
|
||||
public WagoPanel() {
|
||||
initComponents();
|
||||
this.startTimer(10000);
|
||||
this.startTimer(1000);
|
||||
}
|
||||
|
||||
|
||||
CompletableFuture future;
|
||||
|
||||
|
||||
@Override
|
||||
public void onTimer(){
|
||||
if ((getDevice()!=null)){
|
||||
public void onTimer() {
|
||||
if ((getDevice() != null)) {
|
||||
updateTitle();
|
||||
}
|
||||
}
|
||||
|
||||
void updateTitle(){
|
||||
Boolean roomTemp = (Controller.getInstance().isLedRoomTemp());
|
||||
if (roomTemp==null){
|
||||
((TitledBorder)panelDewar.getBorder()).setTitle("Dewar Light");
|
||||
} else if (roomTemp==true){
|
||||
((TitledBorder)panelDewar.getBorder()).setTitle("Dewar Light (room temperature)");
|
||||
} else {
|
||||
((TitledBorder)panelDewar.getBorder()).setTitle("Dewar Light (LN2)");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void execute(String statement){
|
||||
|
||||
int count10s = 10;
|
||||
|
||||
void updateTitle() {
|
||||
if (count10s++ >= 10) {
|
||||
count10s = 0;
|
||||
Boolean roomTemp = (Controller.getInstance().isLedRoomTemp());
|
||||
if (roomTemp == null) {
|
||||
((TitledBorder) panelDewar.getBorder()).setTitle("Dewar Light");
|
||||
} else if (roomTemp == true) {
|
||||
((TitledBorder) panelDewar.getBorder()).setTitle("Dewar Light (room temperature)");
|
||||
} else {
|
||||
((TitledBorder) panelDewar.getBorder()).setTitle("Dewar Light (LN2)");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
try {
|
||||
DeviceBase valveOpen = (DeviceBase) Context.getInstance().getDevicePool().getByName("valve_open");
|
||||
ledOpen.setColor(Boolean.TRUE.equals(valveOpen.take()) ? Color.GREEN : Color.BLACK);
|
||||
} catch (Exception ex) {
|
||||
ledOpen.setColor(Color.RED);
|
||||
}
|
||||
try {
|
||||
DeviceBase valveClose = (DeviceBase) Context.getInstance().getDevicePool().getByName("valve_close");
|
||||
ledClose.setColor(Boolean.TRUE.equals(valveClose.take()) ? Color.GREEN : Color.BLACK);
|
||||
} catch (Exception ex) {
|
||||
ledClose.setColor(Color.RED);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void execute(String statement) {
|
||||
try {
|
||||
Context.getInstance().evalLineBackgroundAsync(statement).handle((ret, ex) -> {
|
||||
if (WagoPanel.this.isShowing()){
|
||||
if (ex != null){
|
||||
showException((Exception)ex);
|
||||
}
|
||||
if (WagoPanel.this.isShowing()) {
|
||||
if (ex != null) {
|
||||
showException((Exception) ex);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
});
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
@@ -63,6 +85,11 @@ public class WagoPanel extends DevicePanel {
|
||||
buttonHeater = new javax.swing.JToggleButton();
|
||||
buttonStream = new javax.swing.JToggleButton();
|
||||
panelDewar = new ch.psi.pshell.swing.ProcessVariablePanel();
|
||||
panelRobot2 = new javax.swing.JPanel();
|
||||
ledOpen = new ch.psi.pshell.swing.Led();
|
||||
ledClose = new ch.psi.pshell.swing.Led();
|
||||
buttonOpenValve = new javax.swing.JButton();
|
||||
buttonCloseValve = new javax.swing.JButton();
|
||||
|
||||
deviceStatePanel1.setDeviceName("wago");
|
||||
|
||||
@@ -154,6 +181,58 @@ public class WagoPanel extends DevicePanel {
|
||||
panelDewar.setShowSlider(true);
|
||||
panelDewar.setShowStop(false);
|
||||
|
||||
panelRobot2.setBorder(javax.swing.BorderFactory.createTitledBorder("Valve"));
|
||||
|
||||
ledOpen.setFont(new java.awt.Font("SansSerif", 0, 18)); // NOI18N
|
||||
|
||||
ledClose.setFont(new java.awt.Font("SansSerif", 0, 18)); // NOI18N
|
||||
|
||||
buttonOpenValve.setText("Open");
|
||||
buttonOpenValve.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonOpenValveActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonCloseValve.setText("Close");
|
||||
buttonCloseValve.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonCloseValveActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
javax.swing.GroupLayout panelRobot2Layout = new javax.swing.GroupLayout(panelRobot2);
|
||||
panelRobot2.setLayout(panelRobot2Layout);
|
||||
panelRobot2Layout.setHorizontalGroup(
|
||||
panelRobot2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(panelRobot2Layout.createSequentialGroup()
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(panelRobot2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(buttonOpenValve)
|
||||
.addComponent(buttonCloseValve))
|
||||
.addGap(37, 37, 37)
|
||||
.addGroup(panelRobot2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||
.addComponent(ledClose, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(ledOpen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
panelRobot2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonCloseValve, buttonOpenValve});
|
||||
|
||||
panelRobot2Layout.setVerticalGroup(
|
||||
panelRobot2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(panelRobot2Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(panelRobot2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(ledOpen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(buttonOpenValve))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addGroup(panelRobot2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(ledClose, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(buttonCloseValve))
|
||||
.addGap(3, 3, 3))
|
||||
);
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
this.setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
@@ -162,6 +241,7 @@ public class WagoPanel extends DevicePanel {
|
||||
.addComponent(panelSafety, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(panelRobot1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(panelDewar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(panelRobot2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
@@ -172,6 +252,8 @@ public class WagoPanel extends DevicePanel {
|
||||
.addGap(0, 0, 0)
|
||||
.addComponent(panelRobot1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(0, 0, 0)
|
||||
.addComponent(panelRobot2, 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))
|
||||
);
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
@@ -185,23 +267,35 @@ public class WagoPanel extends DevicePanel {
|
||||
}//GEN-LAST:event_buttonReleaseLocalActionPerformed
|
||||
|
||||
private void buttonHeaterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonHeaterActionPerformed
|
||||
execute("set_heater(" + (buttonHeater.isSelected() ? "True": "False") + ")");
|
||||
execute("set_heater(" + (buttonHeater.isSelected() ? "True" : "False") + ")");
|
||||
}//GEN-LAST:event_buttonHeaterActionPerformed
|
||||
|
||||
private void buttonStreamActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStreamActionPerformed
|
||||
execute("set_air_stream(" + (buttonStream.isSelected()? "True": "False")+ ")");
|
||||
execute("set_air_stream(" + (buttonStream.isSelected() ? "True" : "False") + ")");
|
||||
}//GEN-LAST:event_buttonStreamActionPerformed
|
||||
|
||||
|
||||
|
||||
private void buttonOpenValveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonOpenValveActionPerformed
|
||||
execute("open_valve()");
|
||||
}//GEN-LAST:event_buttonOpenValveActionPerformed
|
||||
|
||||
private void buttonCloseValveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCloseValveActionPerformed
|
||||
execute("close_valve()");
|
||||
}//GEN-LAST:event_buttonCloseValveActionPerformed
|
||||
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JButton buttonCloseValve;
|
||||
private javax.swing.JToggleButton buttonHeater;
|
||||
private javax.swing.JButton buttonOpenValve;
|
||||
private javax.swing.JButton buttonReleaseLocal;
|
||||
private javax.swing.JButton buttonReleasePsys;
|
||||
private javax.swing.JToggleButton buttonStream;
|
||||
private ch.psi.pshell.swing.DeviceStatePanel deviceStatePanel1;
|
||||
private ch.psi.pshell.swing.Led ledClose;
|
||||
private ch.psi.pshell.swing.Led ledOpen;
|
||||
private ch.psi.pshell.swing.ProcessVariablePanel panelDewar;
|
||||
private javax.swing.JPanel panelRobot1;
|
||||
private javax.swing.JPanel panelRobot2;
|
||||
private javax.swing.JPanel panelSafety;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user