Browse Source

allow for not connected ios

Martin Kunz 3 years ago
parent
commit
7c40fea142

+ 0 - 1
src/main/java/urgrip/installation/URGripInstallationNodeContribution.java

@@ -44,7 +44,6 @@ public class URGripInstallationNodeContribution implements InstallationNodeContr
 	@Override
 	public void openView() {
 		Collection<DigitalIO> ios = apiProvider.getInstallationAPI().getIOModel().getIOs(DigitalIO.class);
-
 		view.setIO(ios, model);
 	}
 

+ 7 - 7
src/main/java/urgrip/installation/URGripInstallationNodeView.java

@@ -67,13 +67,10 @@ public class URGripInstallationNodeView implements SwingInstallationNodeView<URG
 		jcb.setPreferredSize(style.getInputfieldSize());
 		jcb.setMaximumSize(style.getInputfieldSize());
 		jcb.setMinimumSize(style.getInputfieldSize());
-		jcb.addActionListener(new ActionListener() {
-			@Override
-			public void actionPerformed(ActionEvent actionEvent) {
-				String value=(String) jcb.getSelectedItem();
-				installationNode.setValue(key, value);
-				installationNode.setValue(key+"_NR", String.valueOf(value));
-			}
+		jcb.addActionListener(actionEvent -> {
+			String value=(String) jcb.getSelectedItem();
+			installationNode.setValue(key, value);
+			installationNode.setValue(key+"_NR", String.valueOf(value));
 		});
 		JLabel jl=new JLabel(key);
 		jl.setLabelFor(jcb);
@@ -114,6 +111,8 @@ public class URGripInstallationNodeView implements SwingInstallationNodeView<URG
 	public void setIO(Collection<DigitalIO> ios, DataModel model) {
 		Vector<String> ioDOUT=new Vector<>();
 		Vector<String> ioDIN=new Vector<>();
+		ioDIN.add(IOHandler.NotConnected);
+		ioDOUT.add(IOHandler.NotConnected);
 
 		for(DigitalIO io: ios) {
 			if(io.isInput())
@@ -122,6 +121,7 @@ public class URGripInstallationNodeView implements SwingInstallationNodeView<URG
 				ioDOUT.add(io.getDefaultName());
 		}
 
+
 		getCBFromBox(ddGripClose).setModel(new DefaultComboBoxModel(ioDOUT));
 		getCBFromBox(ddGripClose).setSelectedItem(model.get(KEY_GRIP_CLOSE, KEY_GRIP_CLOSE_DEFAULT));
 

+ 5 - 4
src/main/java/urgrip/programnodes/GripperBlowoutNodeContribution.java

@@ -47,10 +47,11 @@ public class GripperBlowoutNodeContribution implements ProgramNodeContribution {
     public void generateScript(ScriptWriter writer) {
         String ioName=programAPI.getInstallationNode(URGripInstallationNodeContribution.class).getBlowoutIO();
         int idx = IOHandler.getIOIndex(ioName);
-        writer.appendLine("set_standard_digital_out("+ idx +", True)");
-        writer.appendLine("sleep("+ Float.toString(view.getDelay()/1000.0f) +")");
-        writer.appendLine("set_standard_digital_out("+ idx +", False)");
-        System.out.println(writer.generateScript());
+        if(idx >0) { // N/C -> -1
+            writer.appendLine("set_standard_digital_out(" + idx + ", True)");
+            writer.appendLine("sleep(" + Float.toString(view.getDelay() / 1000.0f) + ")");
+            writer.appendLine("set_standard_digital_out(" + idx + ", False)");
+        }
         writer.writeChildren();
     }
 

+ 8 - 5
src/main/java/urgrip/programnodes/GripperCoupleNodeContribution.java

@@ -46,13 +46,16 @@ public class GripperCoupleNodeContribution implements ProgramNodeContribution {
         int idxOpen = IOHandler.getIOIndex(ioNameOpen);
         int idxClose = IOHandler.getIOIndex(ioNameClose);
         if(model.get(KEY_ACTION,"COUPLE").equals("COUPLE")) {
-            writer.appendLine("set_standard_digital_out("+ idxOpen +", True)");
-            writer.appendLine("set_standard_digital_out("+ idxClose +", False)");
+            if(idxOpen >0) // N/C -> -1
+                writer.appendLine("set_standard_digital_out("+ idxOpen +", True)");
+            if(idxClose >0)
+                writer.appendLine("set_standard_digital_out("+ idxClose +", False)");
         } else {
-            writer.appendLine("set_standard_digital_out("+ idxOpen +", False)");
-            writer.appendLine("set_standard_digital_out("+ idxClose +", True)");
+            if(idxOpen >0)
+                writer.appendLine("set_standard_digital_out("+ idxOpen +", False)");
+            if(idxClose >0)
+                writer.appendLine("set_standard_digital_out("+ idxClose +", True)");
         }
-        System.out.println(writer.generateScript());
         writer.writeChildren();
     }
 

+ 10 - 7
src/main/java/urgrip/programnodes/GripperGripNodeContribution.java

@@ -51,16 +51,19 @@ public class GripperGripNodeContribution implements ProgramNodeContribution {
         int idxWaitFor = IOHandler.getIOIndex(ioNameWaitFor);
 
         if(model.get(KEY_ACTION,"GRIP").equals("GRIP")) {
-            writer.appendLine("set_standard_digital_out("+ idxOpen +", True)");
-            writer.appendLine("set_standard_digital_out("+ idxClose +", False)");
+            if(idxOpen >0) // N/C -> -1
+                writer.appendLine("set_standard_digital_out("+ idxOpen +", True)");
+            if(idxClose >0)
+                writer.appendLine("set_standard_digital_out("+ idxClose +", False)");
         } else {
-            writer.appendLine("while get_standard_digital_in("+idxWaitFor+") != True:");
+            if(idxWaitFor >0)
+                writer.appendLine("while get_standard_digital_in("+idxWaitFor+") != True:");
             writer.appendLine("end");
-
-            writer.appendLine("set_standard_digital_out("+ idxOpen +", False)");
-            writer.appendLine("set_standard_digital_out("+ idxClose +", True)");
+            if(idxOpen >0)
+                writer.appendLine("set_standard_digital_out("+ idxOpen +", False)");
+            if(idxClose >0)
+                writer.appendLine("set_standard_digital_out("+ idxClose +", True)");
         }
-        System.out.println(writer.generateScript());
         writer.writeChildren();
     }
 

+ 1 - 0
src/main/java/urgrip/toolbar/IOHandler.java

@@ -13,6 +13,7 @@ import com.ur.urcap.api.domain.io.IOModel;
 public class IOHandler {
 
     private final IOModel ioModel;
+    public final static String NotConnected="N/C";
 
     public IOHandler(IOModel ioModel) {
         this.ioModel = ioModel;

+ 16 - 17
src/main/java/urgrip/toolbar/MyToolbarContribution.java

@@ -5,7 +5,6 @@ import com.ur.urcap.api.contribution.toolbar.ToolbarContext;
 import com.ur.urcap.api.contribution.toolbar.swing.SwingToolbarContribution;
 import com.ur.urcap.api.domain.io.DigitalIO;
 import urgrip.installation.URGripInstallationNodeContribution;
-import urgrip.installation.URGripInstallationNodeService;
 
 import javax.swing.*;
 import java.awt.*;
@@ -39,13 +38,10 @@ class MyToolbarContribution implements SwingToolbarContribution {
     @Override
     public void openView() {
         initializeIO();
-
-
     }
 
     @Override
     public void closeView() {
-
     }
 
     private void initializeIO() {
@@ -58,6 +54,12 @@ class MyToolbarContribution implements SwingToolbarContribution {
 
     }
 
+    private void setIO(DigitalIO io, boolean b) {
+        if(io!=null) {
+            ioCoupleOpen.setValue(b);
+        }
+    }
+
     public void buildUI(JPanel jPanel) {
         jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.Y_AXIS));
         jPanel.add(createHeader());
@@ -83,8 +85,8 @@ class MyToolbarContribution implements SwingToolbarContribution {
         box.add(bGrip);
         new MyButton(bGrip, new HandleButton() {
             @Override public void action() {
-                ioGripOpen.setValue(true);
-                ioGripClose.setValue(false);
+                setIO(ioCoupleOpen,true);
+                setIO(ioGripClose,false);
             }
         });
 
@@ -92,8 +94,8 @@ class MyToolbarContribution implements SwingToolbarContribution {
         box.add(bRelease);
         new MyButton(bRelease, new HandleButton() {
             @Override public void action() {
-                ioGripOpen.setValue(false);
-                ioGripClose.setValue(true);
+                setIO(ioGripOpen, false);
+                setIO(ioGripClose, true);
             }
         });
 
@@ -102,11 +104,11 @@ class MyToolbarContribution implements SwingToolbarContribution {
         new MyButton(bBlow, new HandleButton() {
             @Override
             public void down() {
-                blowout.setValue(true);
+                setIO(blowout, true);
             }
             @Override
             public void up() {
-                blowout.setValue(false);
+                setIO(blowout, false);
             }
         });
 
@@ -114,8 +116,8 @@ class MyToolbarContribution implements SwingToolbarContribution {
         box.add(bCouple);
         new MyButton(bCouple, new HandleButton() {
             @Override public void action() {
-                ioCoupleClose.setValue(false);
-                ioCoupleOpen.setValue(true);
+                setIO(ioCoupleClose, false);
+                setIO(ioCoupleOpen, true);
             }
         });
 
@@ -123,8 +125,8 @@ class MyToolbarContribution implements SwingToolbarContribution {
         box.add(bDecouple);
         new MyButton(bDecouple, new HandleButton() {
             @Override public void action() {
-                ioCoupleClose.setValue(true);
-                ioCoupleOpen.setValue(false);
+                setIO(ioCoupleClose, true);
+                setIO(ioCoupleOpen, false);
             }
         });
         return box;
@@ -147,7 +149,4 @@ class MyToolbarContribution implements SwingToolbarContribution {
     private void updateText(String text) {
         SwingUtilities.invokeLater(() -> demoToolStatus.setText("<HTML>" + text +"</HTML>"));
     }
-
-
-
 }