diff --git a/simulators/c++2/src_simulator/sim/Simulator.cpp b/simulators/c++2/src_simulator/sim/Simulator.cpp index 138974efc0077d2cd2a76f30eb378e1e49db7ea3..2dc94da3f2571eaccdafa59d9f268ed333ab19b7 100644 --- a/simulators/c++2/src_simulator/sim/Simulator.cpp +++ b/simulators/c++2/src_simulator/sim/Simulator.cpp @@ -1351,13 +1351,25 @@ void Simulator::decodeCommand(std::string iCmd, std::ostream& iXmlOutStream){ switch (aParam1){ //_end =oLastTrans->printEnd(); - case 0: //Run to next breakpoint - std::cout << "Run to next breakpoint." << std::endl; - aGlobMsg << TAG_MSGo << "Run to next breakpoint" << TAG_MSGc << std::endl; - _simTerm=runToNextBreakpoint(oLastTrans); - std::cout << "End Run to next breakpoint." << std::endl; - _end =oLastTrans->printEnd(); - break; + case 0: { //Run to next breakpoint + std::cout << "Run to next breakpoint." << std::endl; + aGlobMsg << TAG_MSGo << "Run to next breakpoint" << TAG_MSGc << std::endl; + _simTerm=runToNextBreakpoint(oLastTrans); + int tempDaemon = 0; + if (!_simComp->getNonDaemonTaskList().empty()) { + for (TaskList::const_iterator i=_simComp->getNonDaemonTaskList().begin(); i != _simComp->getNonDaemonTaskList().end(); ++i) { + if((*i)->getState()==3){ + tempDaemon ++; + } + } + } + if (tempDaemon < _simComp->getNonDaemonTaskList().size()) { + _simTerm = false; + } + std::cout << "End Run to next breakpoint." << std::endl; + _end =oLastTrans->printEnd(); + break; + } case 1: //Run up to trans x std::cout << "Run to transaction x." << std::endl; aGlobMsg << TAG_MSGo << MSG_CMDNIMPL << TAG_MSGc << std::endl; diff --git a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java index 4ce4bc45976665028e780d359def98453ffccad7..d381029d41e7f2defd2498670fc77cb41131b5ca 100644 --- a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java +++ b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java @@ -3425,6 +3425,23 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene startSimulation(); //TraceManager.addDev("Start simulation!"); } else if (command.equals(actions[InteractiveSimulationActions.ACT_STOP_AND_CLOSE_ALL].getActionCommand())) { + for(TURTLEPanel _tab : mgui.getTabs()) { + if(_tab instanceof TMLArchiPanel) { + for (TDiagramPanel tdp : _tab.getPanels()) { + if (tdp instanceof TMLArchiDiagramPanel) { + mgui.selectTab(tdp); + for (TGComponent tg : tdp.getComponentList()) { + if (tg instanceof TMLArchiCPUNode) { + TMLArchiCPUNode tmpcpu = (TMLArchiCPUNode) tg; + tmpcpu.resetTransactionsList(); + } + } + break; + } + } + break; + } + } killSimulator(); close(); return; diff --git a/src/main/java/ui/window/JDialogCPUNode.java b/src/main/java/ui/window/JDialogCPUNode.java index 510c078cc1c19419a827cc0cf58ff2ef9d636102..6aa9db719a111108def1f2e2eb726ca27a220426 100644 --- a/src/main/java/ui/window/JDialogCPUNode.java +++ b/src/main/java/ui/window/JDialogCPUNode.java @@ -368,8 +368,8 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener { MECTypeCB.makeEndHelpButton(helpStrings[15], mgui, mgui.getHelpManager(), panel4, c4); - TraceManager.addDev("Transactions size=" + transactions.size()); - if (transactions.size()!=0) { + if (transactions != null && transactions.size()!=0) { + TraceManager.addDev("Transactions size=" + transactions.size()); TraceManager.addDev("On going simulation"); panel5 = new JPanel(); diff --git a/ttool/src/test/java/tmltranslator/DiplodocusSimulatorTest.java b/ttool/src/test/java/tmltranslator/DiplodocusSimulatorTest.java index 5a08344ff58dea6b6ccbdddbe3fe074d88598230..6473e7974e5a5863aa16ab62f689e7c26e51aabf 100644 --- a/ttool/src/test/java/tmltranslator/DiplodocusSimulatorTest.java +++ b/ttool/src/test/java/tmltranslator/DiplodocusSimulatorTest.java @@ -41,6 +41,10 @@ public class DiplodocusSimulatorTest extends AbstractUITest { final int [] MIN_DAEMON_CYCLES = {181, 2743}; final int [] MAX_DAEMON_CYCLES = {181, 2743}; + // model for Daemon Run To Next Breakpoint + final String MODELS_DAEMON_RTNB = "testDaemon"; + final int [] DAEMON_RTNBP_1 = {16, 15, 205, 205}; + final int [] DAEMON_RTNBP_2 = {28, 27, 408, 408}; private String SIM_DIR; @@ -385,4 +389,200 @@ public class DiplodocusSimulatorTest extends AbstractUITest { } } + @Test + public void testDaemonRunToNextBreakPoint() throws Exception { + String s = MODELS_DAEMON_RTNB; + SIM_DIR = DIR_GEN + s + "/"; + System.out.println("executing: checking syntax " + s); + // select architecture tab + mainGUI.openProjectFromFile(new File(RESOURCES_DIR + s + ".xml")); + for(TURTLEPanel _tab : mainGUI.getTabs()) { + if(_tab instanceof TMLArchiPanel) { + for (TDiagramPanel tdp : _tab.getPanels()) { + if (tdp instanceof TMLArchiDiagramPanel) { + mainGUI.selectTab(tdp); + break; + } + } + break; + } + } + mainGUI.checkModelingSyntax(true); + TMLMapping tmap = mainGUI.gtm.getTMLMapping(); + TMLSyntaxChecking syntax = new TMLSyntaxChecking(tmap); + syntax.checkSyntax(); + assertTrue(syntax.hasErrors() == 0); + // Generate SystemC code + System.out.println("executing: sim code gen for " + s); + final IDiploSimulatorCodeGenerator tml2systc; + List<EBRDD> al = new ArrayList<EBRDD>(); + List<TEPE> alTepe = new ArrayList<TEPE>(); + tml2systc = DiploSimulatorFactory.INSTANCE.createCodeGenerator(tmap, al, alTepe); + tml2systc.setModelName(s); + String error = tml2systc.generateSystemC(false, true); + assertTrue(error == null); + + File directory = new File(SIM_DIR); + if (!directory.exists()) { + directory.mkdirs(); + } + + // Putting sim files + System.out.println("SIM executing: sim lib code copying for " + s); + ConfigurationTTool.SystemCCodeDirectory = getBaseResourcesDir() + "../../../../simulators/c++2/"; + boolean simFiles = SpecConfigTTool.checkAndCreateSystemCDir(SIM_DIR); + + System.out.println("SIM executing: sim lib code copying done with result " + simFiles); + assertTrue(simFiles); + + System.out.println("SIM Saving file in: " + SIM_DIR); + tml2systc.saveFile(SIM_DIR, "appmodel"); + + // Compile it + System.out.println("executing: compile"); + Process proc; + BufferedReader proc_in; + String str; + boolean mustRecompileAll; + Penalties penalty = new Penalties(SIM_DIR + "src_simulator"); + int changed = penalty.handlePenalties(false); + + if (changed == 1) { + mustRecompileAll = true; + } else { + mustRecompileAll = false; + } + + if (mustRecompileAll) { + System.out.println("executing: " + "make -C " + SIM_DIR + " clean"); + try { + proc = Runtime.getRuntime().exec("make -C " + SIM_DIR + " clean"); + proc_in = new BufferedReader(new InputStreamReader(proc.getInputStream())); + while ((str = proc_in.readLine()) != null) { + // TraceManager.addDev( "Sending " + str + " from " + port + " to client..." ); + System.out.println("executing: " + str); + } + } catch (Exception e) { + // probably make is not installed + System.out.println("FAILED: executing: " + "make -C " + SIM_DIR + " clean"); + return; + } + } + + System.out.println("executing: " + "make -C " + SIM_DIR); + try { + + proc = Runtime.getRuntime().exec("make -C " + SIM_DIR + ""); + proc_in = new BufferedReader(new InputStreamReader(proc.getInputStream())); + + monitorError(proc); + + while ((str = proc_in.readLine()) != null) { + // TraceManager.addDev( "Sending " + str + " from " + port + " to client..." ); + System.out.println("executing: " + str); + } + } catch (Exception e) { + // Probably make is not installed + System.out.println("FAILED: executing: " + "make -C " + SIM_DIR); + return; + } + System.out.println("SUCCESS: executing: " + "make -C " + SIM_DIR); + + // Run the simulator + String graphPath = SIM_DIR + "testgraph_" + s; + try { + + String[] params = new String[3]; + + params[0] = "./" + SIM_DIR + "run.x"; + params[1] = "-cmd"; + params[2] = "11 4 21; 1 0; 1 7 100 100 " + graphPath; + proc = Runtime.getRuntime().exec(params); + //proc = Runtime.getRuntime().exec("./" + SIM_DIR + "run.x -explo -gname testgraph_" + s); + proc_in = new BufferedReader(new InputStreamReader(proc.getInputStream())); + + monitorError(proc); + + while ((str = proc_in.readLine()) != null) { + // TraceManager.addDev( "Sending " + str + " from " + port + " to client..." ); + System.out.println("executing: " + str); + } + + //second case + params = new String[3]; + + params[0] = "./" + SIM_DIR + "run.x"; + params[1] = "-cmd"; + params[2] = "11 4 21; 1 0; 1 0; 1 7 100 100 " + graphPath + "_second"; + proc = Runtime.getRuntime().exec(params); + //proc = Runtime.getRuntime().exec("./" + SIM_DIR + "run.x -explo -gname testgraph_" + s); + proc_in = new BufferedReader(new InputStreamReader(proc.getInputStream())); + + monitorError(proc); + + while ((str = proc_in.readLine()) != null) { + // TraceManager.addDev( "Sending " + str + " from " + port + " to client..." ); + System.out.println("executing second case: " + str); + } + } catch (Exception e) { + // Probably make is not installed + System.out.println("FAILED: executing simulation"); + return; + } + + // Compare results with expected ones + // Must load the graph + File graphFile = new File(graphPath + ".aut"); + String graphData = ""; + try { + graphData = FileUtils.loadFileData(graphFile); + } catch (Exception e) { + assertTrue(false); + } + + AUTGraph graph = new AUTGraph(); + graph.buildGraph(graphData); + + // States and transitions + System.out.println("executing: nb states of " + s + " " + graph.getNbOfStates()); + assertTrue(DAEMON_RTNBP_1[0] == graph.getNbOfStates()); + System.out.println("executing: nb transitions of " + s + " " + graph.getNbOfTransitions()); + assertTrue(DAEMON_RTNBP_1[1] == graph.getNbOfTransitions()); + + // Min and max cycles + int minValue = graph.getMinValue("allCPUsFPGAsTerminated"); + System.out.println("executing: minvalue of " + s + " " + minValue); + assertTrue(DAEMON_RTNBP_1[2] == minValue); + + int maxValue = graph.getMaxValue("allCPUsFPGAsTerminated"); + System.out.println("executing: maxvalue of " + s + " " + maxValue); + assertTrue(DAEMON_RTNBP_1[3] == maxValue); + + //test for second case + graphFile = new File(graphPath + "_second.aut"); + graphData = ""; + try { + graphData = FileUtils.loadFileData(graphFile); + } catch (Exception e) { + assertTrue(false); + } + + graph = new AUTGraph(); + graph.buildGraph(graphData); + + // States and transitions + System.out.println("executing: nb states of " + s + " " + graph.getNbOfStates()); + assertTrue(DAEMON_RTNBP_2[0] == graph.getNbOfStates()); + System.out.println("executing: nb transitions of " + s + " " + graph.getNbOfTransitions()); + assertTrue(DAEMON_RTNBP_2[1] == graph.getNbOfTransitions()); + + // Min and max cycles + minValue = graph.getMinValue("allCPUsFPGAsTerminated"); + System.out.println("executing: minvalue of " + s + " " + minValue); + assertTrue(DAEMON_RTNBP_2[2] == minValue); + + maxValue = graph.getMaxValue("allCPUsFPGAsTerminated"); + System.out.println("executing: maxvalue of " + s + " " + maxValue); + assertTrue(DAEMON_RTNBP_2[3] == maxValue); + } } \ No newline at end of file diff --git a/ttool/src/test/resources/tmltranslator/simulator/testDaemon.xml b/ttool/src/test/resources/tmltranslator/simulator/testDaemon.xml new file mode 100644 index 0000000000000000000000000000000000000000..a98180bc8556e6bddbbb58c1f6c0aec96be70edf --- /dev/null +++ b/ttool/src/test/resources/tmltranslator/simulator/testDaemon.xml @@ -0,0 +1,641 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="false" UPDATE_INFORMATION_DIPLO_SIM="true" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="1" LAST_SELECTED_SUB_TAB="0"> + +<Modeling type="TML Component Design" nameTab="FVWithRequest" tabs="TML Component Task Diagram$AnotherTask$Sender$Periodic" > +<TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="10" maxX="2500" minY="10" maxY="1500" channels="true" events="true" requests="true" zoom="1.0000000000000007" > +<CONNECTOR type="126" id="1" > +<cdparam x="609" y="299" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="Connector between ports" /> +<P1 x="633" y="308" id="14" /> +<P2 x="785" y="308" id="27" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="2" > +<cdparam x="966" y="410" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="Connector between ports" /> +<P1 x="910" y="383" id="25" /> +<P2 x="978" y="608" id="3" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<COMPONENT type="1202" id="13" > +<cdparam x="890" y="621" /> +<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="9" maxX="2499" minY="9" maxY="1499" /> +<infoparam name="Primitive component" value="AnotherTask" /> +<TGConnectingPoint num="0" id="5" /> +<TGConnectingPoint num="1" id="6" /> +<TGConnectingPoint num="2" id="7" /> +<TGConnectingPoint num="3" id="8" /> +<TGConnectingPoint num="4" id="9" /> +<TGConnectingPoint num="5" id="10" /> +<TGConnectingPoint num="6" id="11" /> +<TGConnectingPoint num="7" id="12" /> +<extraparam> +<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="ns" Operation="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1203" id="4" > +<father id="13" num="0" /> +<cdparam x="965" y="608" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" /> +<infoparam name="Primitive port" value="Channel comm" /> +<TGConnectingPoint num="0" id="3" /> +<extraparam> +<Prop commName="comm" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="32" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1202" id="24" > +<cdparam x="420" y="219" /> +<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="9" maxX="2499" minY="9" maxY="1499" /> +<infoparam name="Primitive component" value="Periodic" /> +<TGConnectingPoint num="0" id="16" /> +<TGConnectingPoint num="1" id="17" /> +<TGConnectingPoint num="2" id="18" /> +<TGConnectingPoint num="3" id="19" /> +<TGConnectingPoint num="4" id="20" /> +<TGConnectingPoint num="5" id="21" /> +<TGConnectingPoint num="6" id="22" /> +<TGConnectingPoint num="7" id="23" /> +<extraparam> +<Data isAttacker="No" daemon="true" periodic="false" periodValue="10" unit="us" Operation="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1203" id="15" > +<father id="24" num="0" /> +<cdparam x="607" y="295" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" /> +<infoparam name="Primitive port" value="Event go" /> +<TGConnectingPoint num="0" id="14" /> +<extraparam> +<Prop commName="go" commType="1" origin="true" finite="false" blocking="false" maxSamples="200" widthSamples="1" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1202" id="37" > +<cdparam x="798" y="220" /> +<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="9" maxX="2499" minY="9" maxY="1499" /> +<infoparam name="Primitive component" value="Sender" /> +<TGConnectingPoint num="0" id="29" /> +<TGConnectingPoint num="1" id="30" /> +<TGConnectingPoint num="2" id="31" /> +<TGConnectingPoint num="3" id="32" /> +<TGConnectingPoint num="4" id="33" /> +<TGConnectingPoint num="5" id="34" /> +<TGConnectingPoint num="6" id="35" /> +<TGConnectingPoint num="7" id="36" /> +<extraparam> +<Data isAttacker="No" daemon="true" periodic="false" periodValue="10" unit="us" Operation="" /> +<Attribute access="2" id="x" value="" type="0" typeOther="" /> +<Attribute access="2" id="y" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1203" id="26" > +<father id="37" num="0" /> +<cdparam x="897" y="357" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" /> +<infoparam name="Primitive port" value="Channel comm1" /> +<TGConnectingPoint num="0" id="25" /> +<extraparam> +<Prop commName="comm1" commType="0" origin="true" finite="false" blocking="false" maxSamples="200" widthSamples="32" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="28" > +<father id="37" num="1" /> +<cdparam x="785" y="295" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" /> +<infoparam name="Primitive port" value="Event go" /> +<TGConnectingPoint num="0" id="27" /> +<extraparam> +<Prop commName="go" commType="1" origin="false" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> + + +</TMLComponentTaskDiagramPanel> + +<TMLActivityDiagramPanel name="AnotherTask" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="1001" id="39" > +<cdparam x="568" y="193" /> +<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="38" /> +</COMPONENT> + +<COMPONENT type="1020" id="43" > +<cdparam x="542" y="156" /> +<sizeparam width="98" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="for loop" value="5" /> +<TGConnectingPoint num="0" id="40" /> +<TGConnectingPoint num="1" id="41" /> +<TGConnectingPoint num="2" id="42" /> +</COMPONENT> + +<COMPONENT type="1000" id="45" > +<cdparam x="597" y="107" /> +<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="44" /> +</COMPONENT> + +<COMPONENT type="1001" id="47" > +<cdparam x="669" y="278" /> +<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="46" /> +</COMPONENT> + +<COMPONENT type="1009" id="50" > +<cdparam x="622" y="215" /> +<sizeparam width="105" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="read channel" value="comm(5) " /> +<TGConnectingPoint num="0" id="48" /> +<TGConnectingPoint num="1" id="49" /> +<extraparam> +<Data channelName="comm" nbOfSamples="5" secPattern="" isAttacker="No" isEncForm="No" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="115" id="51" > +<cdparam x="674" y="240" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="674" y="240" id="49" /> +<P2 x="679" y="273" id="46" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="52" > +<cdparam x="604" y="127" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="604" y="127" id="44" /> +<P2 x="591" y="151" id="40" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="53" > +<cdparam x="647" y="164" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="640" y="170" id="41" /> +<P2 x="674" y="210" id="48" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="54" > +<cdparam x="591" y="181" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="591" y="181" id="42" /> +<P2 x="578" y="188" id="38" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="Sender" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="1010" id="57" > +<cdparam x="575" y="173" /> +<sizeparam width="63" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="wait event" value="go() " /> +<TGConnectingPoint num="0" id="55" /> +<TGConnectingPoint num="1" id="56" /> +<extraparam> +<Data eventName="go" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1030" id="60" > +<cdparam x="483" y="122" /> +<sizeparam width="92" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="for ever loop" value="Loop for ever" /> +<TGConnectingPoint num="0" id="58" /> +<TGConnectingPoint num="1" id="59" /> +</COMPONENT> + +<COMPONENT type="1000" id="62" > +<cdparam x="510" y="76" /> +<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="61" /> +</COMPONENT> + +<COMPONENT type="1001" id="64" > +<cdparam x="602" y="321" /> +<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="63" /> +</COMPONENT> + +<COMPONENT type="1006" id="67" > +<cdparam x="558" y="244" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="write channel" value="comm1(5)" /> +<TGConnectingPoint num="0" id="65" /> +<TGConnectingPoint num="1" id="66" /> +<breakpoint /> +<extraparam> +<Data channelName="comm1" nbOfSamples="5" secPattern="" isAttacker="No" isEncForm="No" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="115" id="68" > +<cdparam x="614" y="188" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="517" y="96" id="61" /> +<P2 x="529" y="117" id="58" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="69" > +<cdparam x="640" y="269" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="612" y="269" id="66" /> +<P2 x="612" y="316" id="63" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="70" > +<cdparam x="575" y="136" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="575" y="136" id="59" /> +<P2 x="606" y="168" id="55" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="71" > +<cdparam x="584" y="187" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="606" y="198" id="56" /> +<P2 x="612" y="239" id="65" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="Periodic" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="1001" id="73" > +<cdparam x="575" y="355" /> +<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="72" /> +</COMPONENT> + +<COMPONENT type="1026" id="77" > +<cdparam x="570" y="291" /> +<sizeparam width="10" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="delay" value="null" /> +<TGConnectingPoint num="0" id="75" /> +<TGConnectingPoint num="1" id="76" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="74" > +<father id="77" num="0" /> +<cdparam x="585" y="311" /> +<sizeparam width="36" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" /> +<infoparam name="value of the delay" value="10 ns" /> +<extraparam> +<TimeDelay minDelay="10" maxDelay="nope" hasMaxDelay="false" isActiveDelay="false" unit="ns" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1008" id="80" > +<cdparam x="530" y="224" /> +<sizeparam width="59" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="send event" value="go()" /> +<TGConnectingPoint num="0" id="78" /> +<TGConnectingPoint num="1" id="79" /> +<extraparam> +<Data eventName="go" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="82" > +<cdparam x="494" y="129" /> +<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="81" /> +</COMPONENT> + +<COMPONENT type="1030" id="85" > +<cdparam x="457" y="169" /> +<sizeparam width="92" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="for ever loop" value="Loop for ever" /> +<TGConnectingPoint num="0" id="83" /> +<TGConnectingPoint num="1" id="84" /> +</COMPONENT> + +<CONNECTOR type="115" id="86" > +<cdparam x="501" y="149" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="501" y="149" id="81" /> +<P2 x="503" y="164" id="83" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="87" > +<cdparam x="549" y="183" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="549" y="183" id="84" /> +<P2 x="559" y="219" id="78" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="88" > +<cdparam x="580" y="249" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="559" y="249" id="79" /> +<P2 x="575" y="286" id="75" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="89" > +<cdparam x="583" y="318" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="575" y="326" id="76" /> +<P2 x="585" y="350" id="72" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +</Modeling> + + + + +<Modeling type="TML Architecture" nameTab="Architecture" > +<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" masterClockFrequency="200" zoom="1.0" > +<COMPONENT type="1105" id="114" > +<cdparam x="543" y="50" /> +<sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Memory0" value="name" /> +<TGConnectingPoint num="0" id="90" /> +<TGConnectingPoint num="1" id="91" /> +<TGConnectingPoint num="2" id="92" /> +<TGConnectingPoint num="3" id="93" /> +<TGConnectingPoint num="4" id="94" /> +<TGConnectingPoint num="5" id="95" /> +<TGConnectingPoint num="6" id="96" /> +<TGConnectingPoint num="7" id="97" /> +<TGConnectingPoint num="8" id="98" /> +<TGConnectingPoint num="9" id="99" /> +<TGConnectingPoint num="10" id="100" /> +<TGConnectingPoint num="11" id="101" /> +<TGConnectingPoint num="12" id="102" /> +<TGConnectingPoint num="13" id="103" /> +<TGConnectingPoint num="14" id="104" /> +<TGConnectingPoint num="15" id="105" /> +<TGConnectingPoint num="16" id="106" /> +<TGConnectingPoint num="17" id="107" /> +<TGConnectingPoint num="18" id="108" /> +<TGConnectingPoint num="19" id="109" /> +<TGConnectingPoint num="20" id="110" /> +<TGConnectingPoint num="21" id="111" /> +<TGConnectingPoint num="22" id="112" /> +<TGConnectingPoint num="23" id="113" /> +<extraparam> +<info stereotype="MEMORY" nodeName="Memory0" /> +<attributes byteDataSize="4" memorySize="1024" clockRatio="1" bufferType="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="139" > +<cdparam x="354" y="306" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Bus0" value="name" /> +<TGConnectingPoint num="0" id="115" /> +<TGConnectingPoint num="1" id="116" /> +<TGConnectingPoint num="2" id="117" /> +<TGConnectingPoint num="3" id="118" /> +<TGConnectingPoint num="4" id="119" /> +<TGConnectingPoint num="5" id="120" /> +<TGConnectingPoint num="6" id="121" /> +<TGConnectingPoint num="7" id="122" /> +<TGConnectingPoint num="8" id="123" /> +<TGConnectingPoint num="9" id="124" /> +<TGConnectingPoint num="10" id="125" /> +<TGConnectingPoint num="11" id="126" /> +<TGConnectingPoint num="12" id="127" /> +<TGConnectingPoint num="13" id="128" /> +<TGConnectingPoint num="14" id="129" /> +<TGConnectingPoint num="15" id="130" /> +<TGConnectingPoint num="16" id="131" /> +<TGConnectingPoint num="17" id="132" /> +<TGConnectingPoint num="18" id="133" /> +<TGConnectingPoint num="19" id="134" /> +<TGConnectingPoint num="20" id="135" /> +<TGConnectingPoint num="21" id="136" /> +<TGConnectingPoint num="22" id="137" /> +<TGConnectingPoint num="23" id="138" /> +<extraparam> +<info stereotype="Bus" nodeName="Bus0" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="null" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="191" > +<cdparam x="57" y="57" /> +<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="CPU0" value="name" /> +<TGConnectingPoint num="0" id="167" /> +<TGConnectingPoint num="1" id="168" /> +<TGConnectingPoint num="2" id="169" /> +<TGConnectingPoint num="3" id="170" /> +<TGConnectingPoint num="4" id="171" /> +<TGConnectingPoint num="5" id="172" /> +<TGConnectingPoint num="6" id="173" /> +<TGConnectingPoint num="7" id="174" /> +<TGConnectingPoint num="8" id="175" /> +<TGConnectingPoint num="9" id="176" /> +<TGConnectingPoint num="10" id="177" /> +<TGConnectingPoint num="11" id="178" /> +<TGConnectingPoint num="12" id="179" /> +<TGConnectingPoint num="13" id="180" /> +<TGConnectingPoint num="14" id="181" /> +<TGConnectingPoint num="15" id="182" /> +<TGConnectingPoint num="16" id="183" /> +<TGConnectingPoint num="17" id="184" /> +<TGConnectingPoint num="18" id="185" /> +<TGConnectingPoint num="19" id="186" /> +<TGConnectingPoint num="20" id="187" /> +<TGConnectingPoint num="21" id="188" /> +<TGConnectingPoint num="22" id="189" /> +<TGConnectingPoint num="23" id="190" /> +<extraparam> +<info stereotype="CPURR" nodeName="CPU0" /> +<attributes nbOfCores="1" byteDataSize="4" schedulingPolicy="0" sliceTime="10000" goIdleTime="10" maxConsecutiveIdleCycles="10" pipelineSize="5" taskSwitchingTime="20" branchingPredictionPenalty="2" cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="148" > +<father id="191" num="0" /> +<cdparam x="91" y="104" /> +<sizeparam width="216" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="34" minY="0" maxY="160" /> +<infoparam name="TGComponent" value="FVWithRequest::AnotherTask" /> +<TGConnectingPoint num="0" id="140" /> +<TGConnectingPoint num="1" id="141" /> +<TGConnectingPoint num="2" id="142" /> +<TGConnectingPoint num="3" id="143" /> +<TGConnectingPoint num="4" id="144" /> +<TGConnectingPoint num="5" id="145" /> +<TGConnectingPoint num="6" id="146" /> +<TGConnectingPoint num="7" id="147" /> +<extraparam> +<info value="FVWithRequest::AnotherTask" taskName="AnotherTask" referenceTaskName="FVWithRequest" priority="0" operationMEC="AnotherTask" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="157" > +<father id="191" num="1" /> +<cdparam x="96" y="157" /> +<sizeparam width="187" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="63" minY="0" maxY="160" /> +<infoparam name="TGComponent" value="FVWithRequest::Periodic" /> +<TGConnectingPoint num="0" id="149" /> +<TGConnectingPoint num="1" id="150" /> +<TGConnectingPoint num="2" id="151" /> +<TGConnectingPoint num="3" id="152" /> +<TGConnectingPoint num="4" id="153" /> +<TGConnectingPoint num="5" id="154" /> +<TGConnectingPoint num="6" id="155" /> +<TGConnectingPoint num="7" id="156" /> +<extraparam> +<info value="FVWithRequest::Periodic" taskName="Periodic" referenceTaskName="FVWithRequest" priority="0" operationMEC="Periodic" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="166" > +<father id="191" num="2" /> +<cdparam x="111" y="206" /> +<sizeparam width="182" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="68" minY="0" maxY="160" /> +<infoparam name="TGComponent" value="FVWithRequest::Sender" /> +<TGConnectingPoint num="0" id="158" /> +<TGConnectingPoint num="1" id="159" /> +<TGConnectingPoint num="2" id="160" /> +<TGConnectingPoint num="3" id="161" /> +<TGConnectingPoint num="4" id="162" /> +<TGConnectingPoint num="5" id="163" /> +<TGConnectingPoint num="6" id="164" /> +<TGConnectingPoint num="7" id="165" /> +<extraparam> +<info value="FVWithRequest::Sender" taskName="Sender" referenceTaskName="FVWithRequest" priority="0" operationMEC="Sender" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="125" id="192" > +<cdparam x="244" y="257" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="244" y="257" id="182" /> +<P2 x="416" y="306" id="123" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="193" > +<cdparam x="593" y="250" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="593" y="250" id="104" /> +<P2 x="541" y="306" id="124" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> + +</TMLArchiDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file