diff --git a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java index 2fc5d895475236ee9e09d72d698bf1fb346bf0c1..7d85aad1a95733a76abc2345409f00838e7d36c8 100755 --- a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java +++ b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java @@ -1378,6 +1378,7 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene } public void resetSimTrace(){ + msgTimes.clear(); channelIDMap.clear(); simtraces.clear(); } @@ -1385,6 +1386,7 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene public void writeSimTrace(){ try { tmlSimPanel = new JFrameTMLSimulationPanel(new Frame(), mgui, "Simulation Transactions"); + HashMap<String, ArrayList<String>> deviceTaskMap = new HashMap<String, ArrayList<String>>(); for (HwNode node : tmap.getTMLArchitecture().getHwNodes()){ deviceTaskMap.put(node.getName(), new ArrayList<String>()); @@ -1395,18 +1397,21 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene deviceTaskMap.get(node.getName()).add(task.getName()); } } - tmlSimPanel.getSDPanel().setDevices(deviceTaskMap); pos = new PipedOutputStream(); pis = new PipedInputStream(pos, 4096); tmlSimPanel.setFileReference(new BufferedReader(new InputStreamReader(pis))); + tmlSimPanel.getSDPanel().setDevices(deviceTaskMap); + bw = new BufferedWriter(new OutputStreamWriter(pos)); /* for (HwNode node: tmap.getTMLArchitecture().getHwNodes()) { simtraces.add("time=0 block="+ node.getName()+" type=state_entering state=start"); simIndex++; }*/ for (TMLTask task : tmap.getTMLModeling().getTasks()){ - simtraces.add("time=0 block="+ task.getName()+" type=state_entering state=startState"); - simIndex++; + if (!simtraces.contains("time=0 block="+ task.getName()+" type=state_entering state=startState")){ + simtraces.add("time=0 block="+ task.getName()+" type=state_entering state=startState"); + simIndex++; + } } @@ -1438,8 +1443,9 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene public void writeArchitectureSimTrace(){ } - +/* public void processDeviceTraces(SimulationTransaction tran){ + System.out.println("tran " + tran.command + " " + tran.channelName); String command = tran.command; if (command.contains(" ")){ command = command.split(" ")[0]; @@ -1516,11 +1522,12 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene } catch (Exception e){ System.out.println("Exception " + e); } - } + }*/ protected void addTransactionToNode(SimulationTransaction tran){ - //System.out.println("Command " + tran.command + " " + tran.deviceName); + //System.out.println("Command " + tran.command + " " + tran.deviceName + " " + tran.channelName); String command = tran.command; + if (command.contains(" ")){ command = command.split(" ")[0]; } @@ -1573,13 +1580,13 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene } } } - else if (command.equals("SelectEvent")){ - String trace="time="+tran.endTime+ " block=" + tran.taskName + " type=state_entering state=SelectEvent"; - if (!simtraces.contains(trace)){ - simtraces.add(trace); + else if ((command.equals("Send") || command.equals("Wait") || command.equals("SelectEvent")) && tran.deviceName.contains("CPU") && !tran.channelName.startsWith("reqChannel")){ + if (command.equals("SelectEvent")){ + String trace="time="+tran.endTime+ " block=" + tran.taskName + " type=state_entering state=SelectEvent"; + if (!simtraces.contains(trace)){ + simtraces.add(trace); + } } - } - else if ((command.equals("Send") || command.equals("Wait")) && tran.deviceName.contains("CPU")){ TMLEvent evt = tmap.getTMLModeling().getEventByShortName(tran.channelName); if (evt!=null){ TMLTask originTask = evt.getOriginTask(); @@ -1626,8 +1633,23 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene } } } - else if ((command.equals("Request") || command.equals("Notified")) && tran.deviceName.contains("CPU")){ - TMLRequest req = tmap.getTMLModeling().getRequestByShortName(tran.channelName); + else if ((command.equals("Request") || command.equals("Wait")) && tran.deviceName.contains("CPU") && tran.channelName.startsWith("reqChannel")){ + TMLRequest req=null; + for (TMLRequest request: tmap.getTMLModeling().getRequests()){ + if (tran.channelName.replaceAll("reqChannel_","").equals(request.getDestinationTask().getName())){ + if (command.equals("Request")){ + for (TMLTask t: request.getOriginTasks()){ + if (tran.taskName.equals(t.getName())){ + req=request; + } + } + } + else { + req=request; + } + } + // System.out.println(tran.channelName + " " + request.getDestinationTask().getName() + " " + tran.taskName + " " + request.getOriginTasks().get(0).getName()); + } if (req!=null) { TMLTask destTask = req.getDestinationTask(); diff --git a/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java b/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java index 6cff97da0a1ea742f8f1a63e6240671b1a0d1354..08bf0b5fe1c581ccf25b2592e3be7ff22badfffc 100644 --- a/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java +++ b/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java @@ -237,7 +237,6 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener, // Returns the currentY position private int paintTopElements(Graphics g, int currentX, int currentY) { int w; - if (deviceTaskMap.keySet().size()==0){ for(String name : entityNames) { g.drawLine(currentX + (spaceBetweenLifeLines/4), currentY, currentX + (3*spaceBetweenLifeLines/4), currentY); @@ -253,6 +252,7 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener, w = g.getFontMetrics().stringWidth(device); g.drawString(device, currentX + (deviceTaskMap.get(device).size()-1)*((spaceBetweenLifeLines-w)/2), (currentY - spaceVerticalText)/2); for(String name : deviceTaskMap.get(device)) { + addEntityNameIfApplicable(name); g.drawLine(currentX + (spaceBetweenLifeLines/4), currentY, currentX + (3*spaceBetweenLifeLines/4), currentY); g.drawLine(currentX + (spaceBetweenLifeLines/2), currentY, currentX + (spaceBetweenLifeLines/2), currentY + verticalSpaceUnderBlocks); w = g.getFontMetrics().stringWidth(name); @@ -999,7 +999,6 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener, public void run() { //TraceManager.addDev("Reading file"); - if (mode == NO_MODE) { return; } @@ -1042,7 +1041,7 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener, } private void addGenericTransaction(String trans) { - // System.out.println("trans " + trans); + //System.out.println("trans " + trans); int index0; String tmp, tmp1, tmp2; long value; @@ -1220,6 +1219,7 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener, } private void addEntityNameIfApplicable(String _entityName) { + //System.out.println("Names " + entityNames); for(String name: entityNames) { //TraceManager.addDev("Examining name= " + name + " entityName=" + _entityName); if (name.compareTo(_entityName) ==0) { @@ -1232,6 +1232,7 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener, } private int getIndexOfEntityName(String _entityName) { + int cpt = 0; for(String name: entityNames) { if (name.compareTo(_entityName) ==0) { diff --git a/src/main/java/ui/window/JDialogCryptographicConfiguration.java b/src/main/java/ui/window/JDialogCryptographicConfiguration.java index b09e1034aa5641fb79d524a2844b8794aad624cd..4d284ed82a5d17a98baf0d0ea8419434985e8376 100644 --- a/src/main/java/ui/window/JDialogCryptographicConfiguration.java +++ b/src/main/java/ui/window/JDialogCryptographicConfiguration.java @@ -107,19 +107,23 @@ public class JDialogCryptographicConfiguration extends JDialogBase implements Ac } private void initComponents() { - //These values are normalized to AES as 100 + //These values are normalized to AES 128 bit as 100 + //Based off of https://joneaves.wordpress.com/2004/04/18/ecc_and_rsa_speed_comparison/ + //https://www.cryptopp.com/benchmarks.html + //http://www.cs.wustl.edu/~jain/cse567-06/ftp/encryption_perf/index.html + //https://automationrhapsody.com/md5-sha-1-sha-256-sha-512-speed-performance/ //Add list of sample security algorithms - secAlgs.add(new securityAlgorithm("AES", "0","100","10","128","Symmetric Encryption")); + secAlgs.add(new securityAlgorithm("AES", "0","100","100","128","Symmetric Encryption")); secAlgs.add(new securityAlgorithm("Triple-DES", "0","200","200","128","Symmetric Encryption")); - secAlgs.add(new securityAlgorithm("RSA", "0","100","100","128","Asymmetric Encryption")); - secAlgs.add(new securityAlgorithm("ECC", "0","10","100","128","Asymmetric Encryption")); + secAlgs.add(new securityAlgorithm("RSA", "0","250","150","128","Asymmetric Encryption")); + secAlgs.add(new securityAlgorithm("ECC", "0","315","310","128","Asymmetric Encryption")); - secAlgs.add(new securityAlgorithm("SHA-256", "0","100","100","128","Hash")); - secAlgs.add(new securityAlgorithm("Whirlpool", "0","100","100","128","Hash")); + secAlgs.add(new securityAlgorithm("SHA-256", "0","370","370","128","Hash")); + secAlgs.add(new securityAlgorithm("Whirlpool", "0","550","550","128","Hash")); - secAlgs.add(new securityAlgorithm("Poly-1305", "0","100","100","128","MAC")); - secAlgs.add(new securityAlgorithm("HMAC", "0","100","100","128","MAC")); + secAlgs.add(new securityAlgorithm("Poly-1305", "0","400","400","128","MAC")); + secAlgs.add(new securityAlgorithm("HMAC", "0","800","800","128","MAC")); for (securityAlgorithm secAlg: secAlgs){ algNames.add(secAlg.name);