diff --git a/MPSoC/Makefile.forsoclib b/MPSoC/Makefile.forsoclib index a7abb1e60665e4a03c647299101be110d9b14daa..92efe42353bb649ef2d5764affdac58032f58abe 100755 --- a/MPSoC/Makefile.forsoclib +++ b/MPSoC/Makefile.forsoclib @@ -18,8 +18,8 @@ updateruntime: cp mutekh/libmwmr/include/mwmr/mwmr.h mutekh/examples/avatar cp mutekh/libsyscams/*.c mutekh/examples/avatar cp mutekh/libsyscams/*.h mutekh/examples/avatar - cp src/*.c ~/TTool/MPSoC/mutekh/examples/avatar - cp src/*.h ~/TTool/MPSoC/mutekh/examples/avatar + cp src/*.c mutekh/MPSoC/mutekh/examples/avatar + cp src/*.h mutekh/MPSoC/mutekh/examples/avatar updategeneratedcode: diff --git a/src/main/java/elntranslator/toELN/TopCellGenerator.java b/src/main/java/elntranslator/toELN/TopCellGenerator.java index 44ccd478c42081d9f2a7725ced74b55d9f67a3d7..d80e64324b4dd1e5283d04dca7303e7ce1af3ae0 100644 --- a/src/main/java/elntranslator/toELN/TopCellGenerator.java +++ b/src/main/java/elntranslator/toELN/TopCellGenerator.java @@ -62,8 +62,11 @@ import elntranslator.*; public class TopCellGenerator { public static ELNSpecification eln; - private final static String GENERATED_PATH1 = "generated_CPP" + File.separator; - private final static String GENERATED_PATH2 = "generated_H" + File.separator; + //private final static String GENERATED_PATH1 = "generated_CPP" + File.separator; + //private final static String GENERATED_PATH2 = "generated_H" + File.separator; + + private String GENERATED_PATH1 = "generated_CPP" + File.separator; + private String GENERATED_PATH2 = "generated_H" + File.separator; public TopCellGenerator(ELNSpecification _eln) { eln = _eln; @@ -93,13 +96,19 @@ public class TopCellGenerator { return (top); } - public void saveFile(String path) { + public void saveFile(String path, Boolean standalone) { ELNTCluster cluster = TopCellGenerator.eln.getCluster(); LinkedList<ELNTConnector> connectorsModule = TopCellGenerator.eln.getAllConnectorsInModule(); LinkedList<ELNTConnector> connectorsCluster = TopCellGenerator.eln.getAllConnectorsInCluster(); String top; + if(standalone){ + + GENERATED_PATH1 = ""; + GENERATED_PATH2 = ""; + } + try { // Save file .cpp System.err.println(path + GENERATED_PATH1 + cluster.getName() + ".cpp"); @@ -111,13 +120,19 @@ public class TopCellGenerator { ex.printStackTrace(); } // Save files .h - saveFileModule(path, cluster, connectorsModule); + saveFileModule(path, cluster, connectorsModule, standalone); } - public void saveFileModule(String path, ELNTCluster cluster, List<ELNTConnector> connectors) { + public void saveFileModule(String path, ELNTCluster cluster, List<ELNTConnector> connectors, Boolean standalone) { LinkedList<ELNTModule> modules = cluster.getModule(); String code; + + if(standalone){ + + GENERATED_PATH1 = ""; + GENERATED_PATH2 = ""; + } for (ELNTModule module : modules) { try { @@ -131,4 +146,4 @@ public class TopCellGenerator { } } } -} \ No newline at end of file +} diff --git a/src/main/java/syscamstranslator/toSysCAMS/TopCellGenerator.java b/src/main/java/syscamstranslator/toSysCAMS/TopCellGenerator.java index 07a99113fb6b29e7dc8cb43712af7a6969b8e326..ad82e10c6bffab4b538958bd8d16c7a2f2a8fae3 100644 --- a/src/main/java/syscamstranslator/toSysCAMS/TopCellGenerator.java +++ b/src/main/java/syscamstranslator/toSysCAMS/TopCellGenerator.java @@ -61,9 +61,12 @@ import java.util.LinkedList; public class TopCellGenerator { public static SysCAMSSpecification syscams; - private final static String GENERATED_PATH1 = "generated_CPP" + File.separator; - private final static String GENERATED_PATH2 = "generated_H" + File.separator; - + //private final static String GENERATED_PATH1 = "generated_CPP" + File.separator; + //private final static String GENERATED_PATH2 = "generated_H" + File.separator; + + private String GENERATED_PATH1 = "generated_CPP" + File.separator; + private String GENERATED_PATH2 = "generated_H" + File.separator; + public TopCellGenerator(SysCAMSSpecification sys) { syscams = sys; } @@ -94,12 +97,19 @@ public class TopCellGenerator { return (top); } - public void saveFile(String path) { + public void saveFile(String path, Boolean standalone) { SysCAMSTCluster cluster = TopCellGenerator.syscams.getCluster(); LinkedList<SysCAMSTConnector> connectors = TopCellGenerator.syscams.getAllConnectorCluster(); String top; + if(standalone){ + + GENERATED_PATH1 = ""; + GENERATED_PATH2 = ""; + } + + try { // Save file .cpp System.err.println(path + GENERATED_PATH1 + cluster.getClusterName() + ".cpp"); @@ -111,13 +121,19 @@ public class TopCellGenerator { ex.printStackTrace(); } // Save files .h - saveFileBlock(path, cluster); + saveFileBlock(path, cluster, standalone); } - public void saveFileBlock(String path, SysCAMSTCluster c) { + public void saveFileBlock(String path, SysCAMSTCluster c, Boolean standalone) { String headerTDF, headerDE, codeTDF, codeDE; LinkedList<SysCAMSTBlockTDF> tdf = c.getBlockTDF(); LinkedList<SysCAMSTBlockDE> de = c.getBlockDE(); + + if(standalone){ + + GENERATED_PATH1 = ""; + GENERATED_PATH2 = ""; + } for (SysCAMSTBlockTDF t : tdf) { try { diff --git a/src/main/java/syscamstranslator/toSysCAMSCluster/TopCellGeneratorCluster.java b/src/main/java/syscamstranslator/toSysCAMSCluster/TopCellGeneratorCluster.java index ccdc017d7be379f32c1fb7009b54b10c84c975f0..7f6a6282c93e5cad6f1d2bf345970cebf0a055e0 100644 --- a/src/main/java/syscamstranslator/toSysCAMSCluster/TopCellGeneratorCluster.java +++ b/src/main/java/syscamstranslator/toSysCAMSCluster/TopCellGeneratorCluster.java @@ -63,9 +63,10 @@ import java.util.LinkedList; public class TopCellGeneratorCluster { public static SysCAMSSpecification syscams; - private final static String GENERATED_PATH1 = "generated_CPP" + File.separator; - private final static String GENERATED_PATH2 = "generated_H" + File.separator; - + private String GENERATED_PATH1 = "generated_CPP" + File.separator; + private String GENERATED_PATH2 = "generated_H" + File.separator; + + public TopCellGeneratorCluster(SysCAMSSpecification sys) { syscams = sys; } @@ -96,12 +97,17 @@ public class TopCellGeneratorCluster { return (top); } - public void saveFile(String path) { + public void saveFile(String path, Boolean standalone) { SysCAMSTCluster cluster = TopCellGeneratorCluster.syscams.getCluster(); LinkedList<SysCAMSTConnector> connectors = TopCellGeneratorCluster.syscams.getAllConnectorsCluster4Soclib(); String top; + if(standalone){ + GENERATED_PATH1 = ""; + GENERATED_PATH2 = ""; + } + try { // Save file .cpp System.err.println(path + GENERATED_PATH1 + cluster.getClusterName() + "_tdf.h"); @@ -113,13 +119,18 @@ public class TopCellGeneratorCluster { ex.printStackTrace(); } // Save files .h - saveFileBlock(path, cluster); + saveFileBlock(path, cluster, standalone); } - public void saveFileBlock(String path, SysCAMSTCluster c) { + public void saveFileBlock(String path, SysCAMSTCluster c, Boolean standalone) { String headerTDF, headerDE, codeTDF, codeDE; LinkedList<SysCAMSTBlockTDF> tdf = c.getBlockTDF(); LinkedList<SysCAMSTBlockDE> de = c.getBlockDE(); + + if(standalone){ + GENERATED_PATH1 = ""; + GENERATED_PATH2 = ""; + } for (SysCAMSTBlockTDF t : tdf) { try { diff --git a/src/main/java/syscamstranslator/toSysCAMS_rodrigo/ClusterCodeRodrigo.java b/src/main/java/syscamstranslator/toSysCAMSSoclib/ClusterCodeSoclib.java similarity index 97% rename from src/main/java/syscamstranslator/toSysCAMS_rodrigo/ClusterCodeRodrigo.java rename to src/main/java/syscamstranslator/toSysCAMSSoclib/ClusterCodeSoclib.java index fa186bc8d1a4d114a8c3516e9f357af34ee9d3c0..73bd3aa4b5a847f15e616d58deb89d04b75c9163 100644 --- a/src/main/java/syscamstranslator/toSysCAMS_rodrigo/ClusterCodeRodrigo.java +++ b/src/main/java/syscamstranslator/toSysCAMSSoclib/ClusterCodeSoclib.java @@ -50,19 +50,19 @@ import java.util.LinkedList; import syscamstranslator.*; /** - * Class ClusterCodeRodrigo + * Class ClusterCodeSoclib * Principal code of a cluster component * Creation: 14/05/2018 * @version 1.0 14/05/2018 * @author Irina Kit Yan LEE */ -public class ClusterCodeRodrigo { +public class ClusterCodeSoclib { static private String corpsCluster; private final static String CR = "\n"; private final static String CR2 = "\n\n"; - ClusterCodeRodrigo() {} + ClusterCodeSoclib() {} public static String getClusterCode(SysCAMSTCluster cluster, LinkedList<SysCAMSTConnector> connectors) { int nb_con = 0; diff --git a/src/main/java/syscamstranslator/toSysCAMS_rodrigo/HeaderRodrigo.java b/src/main/java/syscamstranslator/toSysCAMSSoclib/HeaderSoclib.java similarity index 100% rename from src/main/java/syscamstranslator/toSysCAMS_rodrigo/HeaderRodrigo.java rename to src/main/java/syscamstranslator/toSysCAMSSoclib/HeaderSoclib.java diff --git a/src/main/java/syscamstranslator/toSysCAMS_rodrigo/MakefileCodeRodrigo.java b/src/main/java/syscamstranslator/toSysCAMSSoclib/MakefileCodeSoclib.java similarity index 95% rename from src/main/java/syscamstranslator/toSysCAMS_rodrigo/MakefileCodeRodrigo.java rename to src/main/java/syscamstranslator/toSysCAMSSoclib/MakefileCodeSoclib.java index 0482f7b278eed16a4a0b329974f948aa18ee12b3..4021cf7d678bb13b71e136d846ea042111bdd866 100644 --- a/src/main/java/syscamstranslator/toSysCAMS_rodrigo/MakefileCodeRodrigo.java +++ b/src/main/java/syscamstranslator/toSysCAMSSoclib/MakefileCodeSoclib.java @@ -50,21 +50,21 @@ import java.util.LinkedList; import syscamstranslator.*; /** - * Class MakefileCodeRodrigo Principal code of a makefile Creation: 02/06/2018 + * Class MakefileCodeSoclib Principal code of a makefile Creation: 02/06/2018 * * @version 1.0 02/06/2018 * @author Irina Kit Yan LEE */ -public class MakefileCodeRodrigo { +public class MakefileCodeSoclib { static private String corpsMakefile; private final static String CR = "\n"; private final static String CR2 = "\n\n"; - MakefileCodeRodrigo() { + MakefileCodeSoclib() { } - public static String getMakefileCodeRodrigo(LinkedList<SysCAMSTCluster> clusters) { + public static String getMakefileCodeSoclib(LinkedList<SysCAMSTCluster> clusters) { if (clusters != null) { corpsMakefile = "# Compiler and linker flags" + CR + "CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS)" + CR + "LDFLAGS = $(SYSTEMC_LIBRARY_DIRS)" + CR2 + "# List of all ecutables to be compiled" + CR diff --git a/src/main/java/syscamstranslator/toSysCAMS_rodrigo/PrimitiveCodeRodrigo.java b/src/main/java/syscamstranslator/toSysCAMSSoclib/PrimitiveCodeSoclib.java similarity index 96% rename from src/main/java/syscamstranslator/toSysCAMS_rodrigo/PrimitiveCodeRodrigo.java rename to src/main/java/syscamstranslator/toSysCAMSSoclib/PrimitiveCodeSoclib.java index ef1f58c8cd4421ac0d28ccb25a35f99fe6d6601e..be3ae8a5eb4334210ace9707fd5cee92f4fd3e2b 100644 --- a/src/main/java/syscamstranslator/toSysCAMS_rodrigo/PrimitiveCodeRodrigo.java +++ b/src/main/java/syscamstranslator/toSysCAMSSoclib/PrimitiveCodeSoclib.java @@ -50,20 +50,20 @@ import java.util.LinkedList; import syscamstranslator.*; /** - * Class PrimitiveCodeRodrigo + * Class PrimitiveCodeSoclib * Principal code of a primive component * Creation: 14/05/2018 * @version 1.0 14/05/2018 * @author Irina Kit Yan LEE */ -public class PrimitiveCodeRodrigo { +public class PrimitiveCodeSoclib { static private String corpsPrimitiveTDF; static private String corpsPrimitiveDE; private final static String CR = "\n"; private final static String CR2 = "\n\n"; - PrimitiveCodeRodrigo() {} + PrimitiveCodeSoclib() {} public static String getPrimitiveCodeTDF(SysCAMSTBlockTDF tdf) { corpsPrimitiveTDF = ""; diff --git a/src/main/java/syscamstranslator/toSysCAMS_rodrigo/TopCellGeneratorRodrigo.java b/src/main/java/syscamstranslator/toSysCAMSSoclib/TopCellGeneratorSoclib.java similarity index 74% rename from src/main/java/syscamstranslator/toSysCAMS_rodrigo/TopCellGeneratorRodrigo.java rename to src/main/java/syscamstranslator/toSysCAMSSoclib/TopCellGeneratorSoclib.java index 0d24c64c61194d50ab7a2f3c4125dc2c7e604a04..3a203848ca159fb1ac1bed4764910594cddb1e78 100644 --- a/src/main/java/syscamstranslator/toSysCAMS_rodrigo/TopCellGeneratorRodrigo.java +++ b/src/main/java/syscamstranslator/toSysCAMSSoclib/TopCellGeneratorSoclib.java @@ -58,13 +58,15 @@ import java.util.LinkedList; * @author Irina Kit Yan LEE */ -public class TopCellGeneratorRodrigo { +public class TopCellGeneratorSoclib { public static SysCAMSSpecification syscams; - private final static String GENERATED_PATH1 = "generated_CPP" + File.separator; - private final static String GENERATED_PATH2 = "generated_H" + File.separator; - - public TopCellGeneratorRodrigo(SysCAMSSpecification sys) { + + private String GENERATED_PATH1 = "generated_CPP" + File.separator; + private String GENERATED_PATH2 = "generated_H" + File.separator; + + + public TopCellGeneratorSoclib(SysCAMSSpecification sys) { syscams = sys; } @@ -72,37 +74,43 @@ public class TopCellGeneratorRodrigo { if (c == null) { System.out.println("***Warning: require at least one cluster***"); } - if (TopCellGeneratorRodrigo.syscams.getNbBlockTDF() == 0) { + if (TopCellGeneratorSoclib.syscams.getNbBlockTDF() == 0) { System.out.println("***Warning: require at least one TDF block***"); } - if (TopCellGeneratorRodrigo.syscams.getNbPortTDF() == 0) { + if (TopCellGeneratorSoclib.syscams.getNbPortTDF() == 0) { System.out.println("***Warning: require at least one TDF port***"); } - if (TopCellGeneratorRodrigo.syscams.getNbBlockDE() == 0) { + if (TopCellGeneratorSoclib.syscams.getNbBlockDE() == 0) { System.out.println("***Warning: require at least one DE block***"); } - if (TopCellGeneratorRodrigo.syscams.getNbPortDE() == 0) { + if (TopCellGeneratorSoclib.syscams.getNbPortDE() == 0) { System.out.println("***Warning: require at least one DE port***"); } - if (TopCellGeneratorRodrigo.syscams.getNbPortConverter() == 0) { + if (TopCellGeneratorSoclib.syscams.getNbPortConverter() == 0) { System.out.println("***Warning: require at least one converter port***"); } - if (TopCellGeneratorRodrigo.syscams.getNbConnectorCluster() == 0) { + if (TopCellGeneratorSoclib.syscams.getNbConnectorCluster() == 0) { System.out.println("***Warning: require at least one connector***"); } - String top = HeaderRodrigo.getClusterHeader(c) + ClusterCodeRodrigo.getClusterCode(c, connectors); + String top = HeaderSoclib.getClusterHeader(c) + ClusterCodeSoclib.getClusterCode(c, connectors); return (top); } - public void saveFile(String path) { - SysCAMSTCluster cluster = TopCellGeneratorRodrigo.syscams.getCluster(); - LinkedList<SysCAMSTConnector> connectors = TopCellGeneratorRodrigo.syscams.getAllConnectorCluster(); + public void saveFile(String path, Boolean standalone) { + SysCAMSTCluster cluster = TopCellGeneratorSoclib.syscams.getCluster(); + LinkedList<SysCAMSTConnector> connectors = TopCellGeneratorSoclib.syscams.getAllConnectorCluster(); String top; + if(standalone){ + GENERATED_PATH1 = ""; + GENERATED_PATH2 = ""; + } + try { // Save file .cpp - System.err.println(path + GENERATED_PATH1 + cluster.getClusterName() + "_tdf.h"); + + System.err.println(path + GENERATED_PATH1 + cluster.getClusterName() + "_tdf.h"); FileWriter fw = new FileWriter(path + GENERATED_PATH1 + "/" + cluster.getClusterName() + "_tdf.h"); top = generateTopCell(cluster, connectors); fw.write(top); @@ -114,18 +122,23 @@ public class TopCellGeneratorRodrigo { saveFileBlock(path, cluster); } - public void saveFileBlock(String path, SysCAMSTCluster c) { + public void saveFileBlock(String path, SysCAMSTCluster c, Boolean standalone) { String headerTDF, headerDE, codeTDF, codeDE; LinkedList<SysCAMSTBlockTDF> tdf = c.getBlockTDF(); LinkedList<SysCAMSTBlockDE> de = c.getBlockDE(); + + if(standalone){ + GENERATED_PATH1 = ""; + GENERATED_PATH2 = ""; + } for (SysCAMSTBlockTDF t : tdf) { try { System.err.println(path + GENERATED_PATH2 + t.getName() + "_tdf.h"); FileWriter fw = new FileWriter(path + GENERATED_PATH2 + "/" + t.getName() + "_tdf.h"); - headerTDF = HeaderRodrigo.getPrimitiveHeaderTDF(t); + headerTDF = HeaderSoclib.getPrimitiveHeaderTDF(t); fw.write(headerTDF); - codeTDF = PrimitiveCodeRodrigo.getPrimitiveCodeTDF(t); + codeTDF = PrimitiveCodeSoclib.getPrimitiveCodeTDF(t); fw.write(codeTDF); fw.close(); } catch (Exception ex) { @@ -136,9 +149,9 @@ public class TopCellGeneratorRodrigo { try { System.err.println(path + GENERATED_PATH2 + t.getName() + "_tdf.h"); FileWriter fw = new FileWriter(path + GENERATED_PATH2 + "/" + t.getName() + "_tdf.h"); - headerDE = HeaderRodrigo.getPrimitiveHeaderDE(t); + headerDE = HeaderSoclib.getPrimitiveHeaderDE(t); fw.write(headerDE); - codeDE = PrimitiveCodeRodrigo.getPrimitiveCodeDE(t); + codeDE = PrimitiveCodeSoclib.getPrimitiveCodeDE(t); fw.write(codeDE); fw.close(); } catch (Exception ex) { diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java index bf434c3004d2477ca1fdf64a6a38efb42710852c..80a152de55d2a3da75a1cae7716c6df5e70b2843 100644 --- a/src/main/java/ui/GTURTLEModeling.java +++ b/src/main/java/ui/GTURTLEModeling.java @@ -107,6 +107,7 @@ import ui.procsd.ProCSDComponent; import ui.procsd.ProactiveCSDPanel; import ui.prosmd.ProactiveSMDPanel; import ui.req.RequirementDiagramPanel; +import ui.syscams.SysCAMSComponentTaskDiagramPanel; import ui.sysmlsecmethodology.SysmlsecMethodologyDiagramPanel; import ui.tmlad.*; import ui.tmlcd.TMLTaskDiagramPanel; @@ -6481,10 +6482,10 @@ public class GTURTLEModeling { ((AvatarADPanel) tdp).setConnectorsToFront(); } - /*if(tdp instanceof SysCAMSComponentTaskDiagramPanel) { + if(tdp instanceof SysCAMSComponentTaskDiagramPanel) { //TraceManager.addDev("Connectors..."); ((SysCAMSComponentTaskDiagramPanel) tdp).setConnectorsToFront(); - }*/ + } } // AVATAR diff --git a/src/main/java/ui/window/JDialogELNExecutableCodeGeneration.java b/src/main/java/ui/window/JDialogELNExecutableCodeGeneration.java index 3ef7014b1da3efc007f14429f13a417bfddf491f..80366ab9f54589e4efed13bdde8eee982d11d1e4 100644 --- a/src/main/java/ui/window/JDialogELNExecutableCodeGeneration.java +++ b/src/main/java/ui/window/JDialogELNExecutableCodeGeneration.java @@ -500,6 +500,8 @@ public class JDialogELNExecutableCodeGeneration extends javax.swing.JFrame imple // String list;//, data; // hasError = false; + Boolean standalone = true; //are there any GPIO blocks? Currently ELN is always standalone and has no direct connection to SocLib (via TDF: yes) + try { if (jp1.getSelectedIndex() == 0) { jta.append("Generating executable code (ELN version)\n"); @@ -531,7 +533,7 @@ public class JDialogELNExecutableCodeGeneration extends javax.swing.JFrame imple pathCode = code2.getText(); System.err.println("ELN TOPCELL : " + elnSpec.getCluster().getName() + "saved in " + code2.getText()); - topCellGenerator.saveFile(pathCode); + topCellGenerator.saveFile(pathCode, standalone); jta.append("Code saved\n"); } catch (Exception e) { diff --git a/src/main/java/ui/window/JDialogSysCAMSExecutableCodeGeneration.java b/src/main/java/ui/window/JDialogSysCAMSExecutableCodeGeneration.java index c5c80dd0739270ae2bfee31a50ececaca37d6352..8fc324ade520c32f01175912aac7a5f8ba4d955b 100644 --- a/src/main/java/ui/window/JDialogSysCAMSExecutableCodeGeneration.java +++ b/src/main/java/ui/window/JDialogSysCAMSExecutableCodeGeneration.java @@ -509,6 +509,8 @@ public class JDialogSysCAMSExecutableCodeGeneration extends javax.swing.JFrame i // String list;//, data; hasError = false; + Boolean standalone = true; //are there any GPIO blocks? + try { if (jp1.getSelectedIndex() == 0) { Vector<SysCAMSComponentTaskDiagramPanel> syscamsDiagramPanels = mgui.getListSysCAMSPanel(); @@ -540,6 +542,9 @@ public class JDialogSysCAMSExecutableCodeGeneration extends javax.swing.JFrame i } for(SysCAMSTBlockGPIO2VCI gpioBlock : gpioBlocks) { nbPorts += gpioBlock.getPortDE().size(); + standalone=false; + + } if(nbPorts != (allConnectors.size()*2)) { jta.append("Error: There are unconnected ports.\n"); @@ -676,8 +681,8 @@ public class JDialogSysCAMSExecutableCodeGeneration extends javax.swing.JFrame i pathCode = code2.getText(); System.err.println("SYSCAMS TOPCELL : " + syscalsspec.getCluster().getClusterName() + "saved in " + code2.getText()); - topCellGenerator.saveFile(pathCode); - topCellGeneratorCluster.saveFile(pathCode); + topCellGenerator.saveFile(pathCode,standalone); + topCellGeneratorCluster.saveFile(pathCode,standalone); jta.append("Code saved\n"); } catch (Exception e) {