Browse Source

Adds Frontend for PacketSniffer modes

* Enable/Disable packet collection & algorithm
* Set Train/Test Mode
* Updates Counting Metric to print mode
Andreas T. Meyer-Berg 4 years ago
parent
commit
a8fcbe2f7f

+ 1 - 0
examples/CountingMetric.java

@@ -28,6 +28,7 @@ public class CountingMetric implements PacketSniffer {
 	@Override
 	public void processPackets(HashMap<Link, LinkedList<Packet>> packets) {
 		System.out.println("Counting Metric: ");
+		System.out.println("Mode: "+(mode?"Testing":"Training"));
 		if(packets==null)return;
 		/**
 		 * Print all links and their number of packets sent

+ 56 - 1
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/popups/EditPacketSniffer.java

@@ -17,9 +17,11 @@ import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.PacketCollector;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.PacketSniffer;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.SmartDevice;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.view.util.Utility;
+import weka.classifiers.functions.supportVector.RBFKernel;
 
 import java.awt.Container;
 
+import javax.swing.ButtonGroup;
 import javax.swing.JButton;
 import javax.swing.JLabel;
 
@@ -30,6 +32,8 @@ import java.util.Iterator;
 import java.util.Observable;
 import java.util.Observer;
 import java.awt.event.ActionEvent;
+import javax.swing.JRadioButton;
+import javax.swing.JCheckBox;
 
 
 /**
@@ -95,6 +99,19 @@ public class EditPacketSniffer extends JDialog implements Observer {
 	 * True if the collector is being edited
 	 */
 	private boolean edit;
+	/**
+	 * RadioButton marked, if in testing mode
+	 */
+	private JRadioButton rdbtnTesting;
+	/**
+	 * RadioButton for training mode
+	 */
+	private JRadioButton rdbtnTraining;
+	/**
+	 * Checkbox, which is checked if enabled
+	 */
+	private JCheckBox chckbxEnabled;
+	
 	/**
 	 * Creates and shows a new EditAlgorithmPopUp
 	 * @param controller controller
@@ -230,6 +247,33 @@ public class EditPacketSniffer extends JDialog implements Observer {
 		
 		btnCreatePacketCollector.setBounds(180, 310, 210, 30);
 		getContentPane().add(btnCreatePacketCollector);
+		
+		chckbxEnabled = new JCheckBox("Enabled");
+		chckbxEnabled.setBounds(190, 50, 113, 25);
+		getContentPane().add(chckbxEnabled);
+		chckbxEnabled.addActionListener(a->{
+			if(mutex)return;
+			boolean active = chckbxEnabled.isSelected();
+			captureController.setActive(collector, active);
+		});
+		
+
+		rdbtnTraining = new JRadioButton("Training");
+		rdbtnTraining.setBounds(185, 82, 127, 25);
+		getContentPane().add(rdbtnTraining);
+		rdbtnTraining.addActionListener(a->{
+			if(mutex)return;
+			captureController.setMode(collector, !rdbtnTraining.isSelected());
+		});
+		
+		rdbtnTesting = new JRadioButton("Testing");
+		rdbtnTesting.setBounds(185, 112, 127, 25);
+		getContentPane().add(rdbtnTesting);
+		rdbtnTesting.addActionListener(a->{
+			if(mutex)return;
+			captureController.setMode(collector, rdbtnTesting.isSelected());
+		});
+		
 
 		this.addWindowListener(new WindowAdapter() {
 			//Remove Observer, if window is closing
@@ -242,7 +286,9 @@ public class EditPacketSniffer extends JDialog implements Observer {
 		update(null, null);
 		this.setLocationRelativeTo(parent);
 		
-		
+		ButtonGroup group = new ButtonGroup();
+		group.add(rdbtnTesting);
+		group.add(rdbtnTraining);
 	}
 	
 	@Override
@@ -332,6 +378,15 @@ public class EditPacketSniffer extends JDialog implements Observer {
 		scrollPaneDevices.getVerticalScrollBar().setValue(pos);
 		listDevices = newList;
 		
+		/**
+		 * Manage checkboxes
+		 */
+		chckbxEnabled.setSelected(collector.isActive());
+		rdbtnTesting.setEnabled(collector.isActive());
+		rdbtnTesting.setSelected(collector.getMode());
+		rdbtnTraining.setEnabled(collector.isActive());
+		rdbtnTraining.setSelected(!collector.getMode());		
+		
 		if(this.edit&&!captureController.getPacketCollectors().contains(collector)){
 			/**
 			 * If Collector was removed -> Close PopUp