From 6523848fb54b88a7090350bf9087e9b3eda4933d Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr> Date: Tue, 25 Jun 2024 17:17:57 +0200 Subject: [PATCH] Update on generation of the number of samples in R/W when dealing with sec. pat. in diplodocus --- .../tomappingsystemc2/MappedSystemCTask.java | 33 ++++++++++++++----- .../ui/ActivityDiagram2TMLTranslator.java | 6 ++-- src/main/java/ui/MainGUI.java | 3 ++ 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java b/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java index 1069857f6a..dc25711b72 100644 --- a/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java +++ b/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java @@ -699,18 +699,26 @@ public class MappedSystemCTask { cmdName = "_read" + currElem.getID(); hcode += "TMLReadCommand " + cmdName + SCCR; TMLReadChannel rCommand = (TMLReadChannel) currElem; - if (isIntValue(rCommand.getNbOfSamples())) + String nbOfSamples = rCommand.getNbOfSamples(); + if (rCommand.getSecurityPattern() != null) { + nbOfSamples = "( " + nbOfSamples + ") + " + rCommand.getSecurityPattern().getOverhead(); + } + if (isIntValue(nbOfSamples)) //initCommand+= "," + cmdName + "("+currElem.getID()+",this,0," + rCommand.getChannel(0).getExtendedName() + "," + rCommand.getChannel(0).getSize() + "*" + rCommand.getNbOfSamples() + ")"+CR; - initCommand += "," + cmdName + "(" + currElem.getID() + ",this,0," + rCommand.getChannel(0).getExtendedName() + "," + getFormattedLiveVarStr(currElem) + "," + rCommand.getNbOfSamples() + ")" + CR; + initCommand += "," + cmdName + "(" + currElem.getID() + ",this,0," + rCommand.getChannel(0).getExtendedName() + "," + + getFormattedLiveVarStr(currElem) + "," + nbOfSamples + ")" + CR; else //initCommand+= "," + cmdName + "("+currElem.getID()+",this," + makeCommandLenFunc(cmdName, rCommand.getChannel(0).getSize() + "*(" + rCommand.getNbOfSamples()+")",null) + "," + rCommand.getChannel(0).getExtendedName() + ")"+CR; - initCommand += "," + cmdName + "(" + currElem.getID() + ",this," + makeCommandLenFunc(cmdName, rCommand.getNbOfSamples(), null) + "," + rCommand.getChannel(0).getExtendedName() + "," + getFormattedLiveVarStr(currElem) + ")" + CR; - nextCommand = cmdName + ".setNextCommand(array(1,(TMLCommand*)" + makeCommands(currElem.getNextElement(0), false, retElement, null) + "))" + SCCR; + initCommand += "," + cmdName + "(" + currElem.getID() + ",this," + makeCommandLenFunc(cmdName, nbOfSamples, + null) + "," + rCommand.getChannel(0).getExtendedName() + "," + getFormattedLiveVarStr(currElem) + ")" + CR; + nextCommand = cmdName + ".setNextCommand(array(1,(TMLCommand*)" + makeCommands(currElem.getNextElement(0), false, retElement, + null) + "))" + SCCR; } else if (currElem instanceof TMLWriteChannel) { String channels; TMLWriteChannel wCommand = (TMLWriteChannel) currElem; + String nbOfSamples = wCommand.getNbOfSamples(); if (wCommand.getNbOfChannels() > 1) { if (ChannelMappedOnSameHW(wCommand)) { if (debug) TraceManager.addDev("Checking WriteMult with multicast\n"); @@ -728,7 +736,11 @@ public class MappedSystemCTask { TMLWriteChannel newWrite = new TMLWriteChannel("WriteMult", null); if (i == 0) firstWrite = newWrite; newWrite.addChannel(wCommand.getChannel(i)); - newWrite.setNbOfSamples(wCommand.getNbOfSamples()); + + if (wCommand.getSecurityPattern() != null) { + nbOfSamples = "( " + nbOfSamples + ") + " + wCommand.getSecurityPattern().getOverhead(); + } + newWrite.setNbOfSamples(nbOfSamples); if (prevWrite != null) prevWrite.addNext(newWrite); prevWrite = newWrite; } @@ -740,11 +752,14 @@ public class MappedSystemCTask { hcode += "TMLWriteCommand " + cmdName + SCCR; channels = wCommand.getChannel(0).getExtendedName(); } - if (isIntValue(wCommand.getNbOfSamples())) - initCommand += "," + cmdName + "(" + currElem.getID() + ",this,0," + channels + "," + getFormattedLiveVarStr(currElem) + "," + wCommand.getNbOfSamples() + ")" + CR; + if (isIntValue(nbOfSamples)) + initCommand += "," + cmdName + "(" + currElem.getID() + ",this,0," + channels + "," + getFormattedLiveVarStr(currElem) + "," + nbOfSamples + + ")" + CR; else - initCommand += "," + cmdName + "(" + currElem.getID() + ",this," + makeCommandLenFunc(cmdName, wCommand.getNbOfSamples(), null) + "," + channels + "," + getFormattedLiveVarStr(currElem) + ")" + CR; - nextCommand = cmdName + ".setNextCommand(array(1,(TMLCommand*)" + makeCommands(currElem.getNextElement(0), false, retElement, null) + "))" + SCCR; + initCommand += "," + cmdName + "(" + currElem.getID() + ",this," + makeCommandLenFunc(cmdName, nbOfSamples, null) + "," + + channels + "," + getFormattedLiveVarStr(currElem) + ")" + CR; + nextCommand = cmdName + ".setNextCommand(array(1,(TMLCommand*)" + makeCommands(currElem.getNextElement(0), false, + retElement, null) + "))" + SCCR; } else if (currElem instanceof TMLSendEvent) { //if (debug) TraceManager.addDev("Checking Send\n"); diff --git a/src/main/java/ui/ActivityDiagram2TMLTranslator.java b/src/main/java/ui/ActivityDiagram2TMLTranslator.java index c1dee03406..c5531f9112 100644 --- a/src/main/java/ui/ActivityDiagram2TMLTranslator.java +++ b/src/main/java/ui/ActivityDiagram2TMLTranslator.java @@ -399,7 +399,8 @@ public class ActivityDiagram2TMLTranslator { //cur = cur+ add; //tmlreadchannel.setNbOfSamples(Integer.toString(cur)); - tmlreadchannel.setNbOfSamples(curS + " + " + addS); + //tmlreadchannel.setNbOfSamples(curS + " + " + addS); + tmlreadchannel.setNbOfSamples(curS); } else if (!((TMLADReadChannel) tgc).getSecurityContext().isEmpty()) { //Throw error for missing security pattern UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADReadChannel) tgc).getSecurityContext() + " not found"); @@ -800,7 +801,8 @@ public class ActivityDiagram2TMLTranslator { //cur = cur + add; //tmlwritechannel.setNbOfSamples(Integer.toString(cur)); //tmlwritechannel.setNbOfSamples(att.getName()); - tmlwritechannel.setNbOfSamples(curS + " + " + addS); + //tmlwritechannel.setNbOfSamples(curS + " + " + addS); + tmlwritechannel.setNbOfSamples(curS); } else if (!((TMLADWriteChannel) tgc).getSecurityContext().isEmpty()) { //Throw error for missing security pattern UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java index b55c6ff311..983fe20948 100644 --- a/src/main/java/ui/MainGUI.java +++ b/src/main/java/ui/MainGUI.java @@ -1910,6 +1910,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per } + public void actionDrawAvatar(boolean useOriginalValuesFirst) { AvatarSpecification as = gtm.getAvatarSpecification(); if (as != null) { @@ -3615,6 +3616,8 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per } } + + public void makeLotosFile() { String s = file.getAbsolutePath(); int l = s.length(); -- GitLab