Commit 8338b035 authored by Ludovic Apvrille's avatar Ludovic Apvrille
Browse files

Merge branch 'master' of gitlab.enst.fr:mbe-tools/TTool

parents 7fc5ae63 0b0277cc
/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
*
* ludovic.apvrille AT enst.fr
*
* This software is a computer program whose purpose is to allow the
* edition of TURTLE analysis, design and deployment diagrams, to
* allow the generation of RT-LOTOS or Java code from this diagram,
* and at last to allow the analysis of formal validation traces
* obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
* from INRIA Rhone-Alpes.
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited
* liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
*
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*/
package heterogeneoustranslator.systemCAMStranslator;
import javax.swing.*;
import java.awt.*;
import java.util.LinkedList;
import java.util.Vector;
import ui.*;
/**
* Class CAMSBlocks
* Simulation Block for SystemC-AMS Diagrams
* Creation: 28/08/2017
* @version 1.0 28/08/2017
* @author Côme DEMARIGNY
*/
public class CAMSBlocks{
private String name;
private int nbOfIn;
private int nbOfOut;
private LinkedList<TAttribute> myAttributes;
private LinkedList<CAMSSignal> mySignals;
private String [] processCode;
public CAMSBlocks(String _name, int _nbOfIn, int _nbOfOut, LinkedList<TAttribute> _myAttributes, LinkedList<CAMSSignal> _mySignals, String [] _processCode){
name=_name;
nbOfIn=_nbOfIn;
nbOfOut=_nbOfOut;
myAttributes=_myAttributes;
mySignals=_mySignals;
processCode=_processCode;
}
public void setBlockName(String newName){
name = newName;
}
public void setNbOfIn(int newIn){
nbOfIn = newIn;
}
public void setNbOfOut(int newOut){
nbOfOut = newOut;
}
public void setMyAttributes(LinkedList<TAttribute> newMyAttributes){
myAttributes = newMyAttributes;
}
public void setMySignals(LinkedList<CAMSSignal> newMySignals){
mySignals = newMySignals;
}
public void setProcessCode(String[] newProcessCode){
processCode = newProcessCode;
}
public String getBlockName(){
return name;
}
public int getNbOfIn() {
return nbOfIn;
}
public int getNbOfOut() {
return nbOfOut;
}
public LinkedList<TAttribute> getMyAttributes(){
return myAttributes;
}
public LinkedList<CAMSSignal> getMySignals(){
return mySignals;
}
public String[] getProcessCode(){
return processCode;
}
}
\ No newline at end of file
/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
*
* ludovic.apvrille AT enst.fr
*
* This software is a computer program whose purpose is to allow the
* edition of TURTLE analysis, design and deployment diagrams, to
* allow the generation of RT-LOTOS or Java code from this diagram,
* and at last to allow the analysis of formal validation traces
* obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
* from INRIA Rhone-Alpes.
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited
* liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
*
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*/
package heterogeneoustranslator.systemCAMStranslator;
import javax.swing.*;
import java.awt.*;
import java.util.LinkedList;
import java.util.Vector;
import ui.*;
/**
* Class CAMSConnection
* Connection beetwen blocks for SystemC-AMS Diagrams
* Creation: 30/08/2017
* @version 1.0 30/08/2017
* @author Côme DEMARIGNY
*/
public class CAMSConnection{
public String name;
public CAMSBlocks inputBlock, outputBlock;
public int rate;
public int type;
public CAMSConnection(CAMSBlocks _inputBlock, CAMSBlock _outputBlock){
inputBlock = _inputBlock;
outputBlock = _outputBlock;
}
public CAMSBlock getInputBlock(){
return inputBlock;
}
public CAMSBlock getOutputBlock(){
return outputBlock;
}
}
\ No newline at end of file
/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
*
* ludovic.apvrille AT enst.fr
*
* This software is a computer program whose purpose is to allow the
* edition of TURTLE analysis, design and deployment diagrams, to
* allow the generation of RT-LOTOS or Java code from this diagram,
* and at last to allow the analysis of formal validation traces
* obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
* from INRIA Rhone-Alpes.
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited
* liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
*
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*/
package heterogeneoustranslator.systemCAMStranslator;
import myutil.GraphicLib;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import ui.*;
import ui.het.*;
import ui.util.IconManager;
import ui.window.JDialogCAMSBlocks;
import javax.swing.*;
import java.awt.*;
import java.util.LinkedList;
import java.util.Vector;
/**
* Class CAMSSignal
* Signals for SystemC-AMS Diagrams
* Creation: 27/06/2017
* @version 1.0 27/06/2017
* @author Côme DEMARIGNY
*/
public class CAMSSignal {
public final static int IN = 0;
public final static int OUT= 1;
public final static int HYBRID_IN = 2;
public final static int HYBRID_OUT= 3;
public final static int INCORRECT=-1;
private static int i=0;
private String name;
public int inout;
public CAMSSignal (String _name, int _inout) {
inout = _inout;
}
public CAMSSignal makeclone(){
return this;
}
public static CAMSSignal isAValidSignal(String _name, int _inout) {
if (_inout==INCORRECT) {
return null;
}
String s = signalName(_name);
CAMSSignal cs = new CAMSSignal(s, _inout);
return cs;
}
public int getInout(){
return inout;
}
public static String signalName(String _n){
String s="";
s+= _n + ": " + signalID();
return s;
}
public static int signalID(){i++;return i;}
}
\ No newline at end of file
/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
* Daniela Genius, Lip6, UMR 7606
*
* ludovic.apvrille AT enst.fr
* daniela.genius@lip6.fr
*
* This software is a computer program whose purpose is to allow the
* edition of TURTLE analysis, design and deployment diagrams, to
* allow the generation of RT-LOTOS or Java code from this diagram,
* and at last to allow the analysis of formal validation traces
* obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
* from INRIA Rhone-Alpes.
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited
* liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
*
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*/
/* * @version 1.0 04/09/2017
* @author Côme Demarigny */
package heterogeneoustranslator.systemCAMStranslator;
import java.util.LinkedList;
import java.util.List;
public class CAMSSpecification{
private List<CAMSBlocks> blocks;
private List<CAMSSignal> signals;
private List<CAMSConnection> connections;
public CAMSSpecification( List<CAMSBlocks> _blocks, List<CAMSSignal> _signals, List<CAMSConnection> _connections, int _nb_target, int _nb_init){
blocks = _blocks ;
signals = _signals ;
connections = _connections ;
nb_target = _nb_target;
nb_init = _nb_init;
}
public List<CAMSBlock> getBlock(){
return blocks;
}
public List<CAMSSignals> getSignals(){
return signals;
}
public List<CAMSConnection> getConnection(){
return connections;
}
public List<CAMSBlocks> getUnconnectedBlocks(){
List<CAMSBlocks> unconnectedBlocks;
for(CAMSBlocks block : blocks){
for(CAMSConnections connection : connections){
if (block == connection.getInputBlock() || block == connection.getOutputBlock()){
break;
}
else {
unconnectedBlocks.add(block);
}
}
}
return unconnectedBlocks;
}
public list<CAMSSignals> getunconnectedSignals(){
list<CAMSSignals> unconnectedSignals;
return unconnectedSignals;
}
}
......@@ -245,7 +245,6 @@ public class TGUIAction extends AbstractAction {
public static final int TMLARCHI_PORT_ARTIFACT = 412;
public static final int TMLARCHI_EVENT_ARTIFACT = 395;
public static final int TMLARCHI_HWANODE = 223;
public static final int TMLARCHI_CAMSNODE = 461;
public static final int TMLARCHI_MEMORYNODE = 224;
public static final int TMLARCHI_DMANODE = 364;
public static final int TMLARCHI_BRIDGENODE = 225;
......@@ -271,9 +270,6 @@ public class TGUIAction extends AbstractAction {
public static final int TMLSD_MESSAGE_ASYNC = 390;
public static final int TMLSD_EDIT = 391;
public static final int CAMS_EDIT = 458;
public static final int CAMS_BLOCK = 459;
public static final int CAMS_CONNECTOR = 460;
public static final int EBRDD_EDIT = 271;
public static final int EBRDD_CONNECTOR = 272;
......@@ -614,7 +610,7 @@ public class TGUIAction extends AbstractAction {
public static final int ACT_INTERNAL_SEARCH = 415;
//--
public static final int NB_ACTION = 462;
public static final int NB_ACTION = 458;
private static final TAction [] actions = new TAction[NB_ACTION];
......@@ -860,7 +856,7 @@ public class TGUIAction extends AbstractAction {
actions[ADD_ROMNODE] = new TAction("add-add-romnode", "Add a ROM", IconManager.imgic1108, IconManager.imgic1108, "ROM", "Add a memory node to the currently opened AVATAR deployment diagram", 0);
actions[ADD_DMANODE] = new TAction("add-add-dmanode", "Add a DMA", IconManager.imgic1110, IconManager.imgic1110, "DMA", "Add a DMA node to the currently opened AVATAR deployment diagram", 0);
actions[ADD_ICUNODE] = new TAction("add-add-icunode", "Add an ICU", IconManager.imgic1112, IconManager.imgic1112, "ICU", "Add a ICU node to the currently opened AVATAR deployment diagram", 0);
actions[ADD_COPROMWMRNODE] = new TAction("add-add-copromwmrnode", "Add a MWMR Copro", IconManager.imgic1114, IconManager.imgic1114, "MWMR Copro", "Add a DMA node to the currently opened AVATAR deployment diagram", 0);
actions[ADD_COPROMWMRNODE] = new TAction("add-add-copromwmrnode", "Add a MWMR Copro", IconManager.imgic1114, IconManager.imgic1114, "MWMR Copro", "Add a MWMR Coprocessor node to the currently opened AVATAR deployment diagram", 0);
actions[ADD_TIMERNODE] = new TAction("add-add-timernode", "Add a Timer", IconManager.imgic1116, IconManager.imgic1116, "Timer", "Add a timer node to the currently opened AVATAR deployment diagram", 0);
......@@ -1026,7 +1022,6 @@ public class TGUIAction extends AbstractAction {
actions[TMLARCHI_EVENT_ARTIFACT] = new TAction("add-tmlarchi-event-artifact", "Map an event / request", IconManager.imgic702, IconManager.imgic702, "Map an event/request", "Map an event or a request onto a node in the currently opened DIPLODOCUS architecture diagram", 0);
actions[TMLARCHI_BRIDGENODE] = new TAction("add-tmlarchi-bridgenode", "Add a Bridge node", IconManager.imgic1104, IconManager.imgic1104, "Bridge node", "Add a bridge node to the currently opened DIPLODOCUS architecture diagram", 0);
actions[TMLARCHI_HWANODE] = new TAction("add-tmlarchi-hwanode", "Add a hardware accelerator node", IconManager.imgic1106, IconManager.imgic1106, "Hardware accelerator node", "Add a hardware accelerator node to the currently opened DIPLODOCUS architecture diagram", 0);
actions[TMLARCHI_CAMSNODE] = new TAction("add-tmlarchi-camsnode", "Add a System C-AMS node", IconManager.imgic1106, IconManager.imgic1106, "System C-AMS node", "Add a System C-AMS node to the currently open DIPLODOCUS architecture diagram", 0);
actions[TMLARCHI_MEMORYNODE] = new TAction("add-tmlarchi-memorynode", "Add a memory node", IconManager.imgic1108, IconManager.imgic1108, "Memory node", "Add a memory node to the currently opened DIPLODOCUS architecture diagram", 0);
actions[TMLARCHI_DMANODE] = new TAction("add-tmlarchi-dmanode", "Add a DMA node", IconManager.imgic1110, IconManager.imgic1110, "DMA node", "Add a DMA node to the currently opened DIPLODOCUS architecture diagram", 0);
actions[TMLARCHI_KEY] = new TAction("add-tmlarchi-key", "Map a key", IconManager.imgic1118, IconManager.imgic1118, "Map a key", "Map a key onto a node in the currently opened DIPLODOCUS architecture diagram", 0);
......@@ -1051,11 +1046,6 @@ public class TGUIAction extends AbstractAction {
actions[TMLSD_CONTROLLER_INSTANCE] = new TAction("add-controller-instance-tmlsd", "Controller instance", IconManager.imgic500, IconManager.imgic500, "Controller instance", "Add a controller instance to the currently opened communication pattern sequence diagram", 0);
actions[TMLSD_ACTION_STATE] = new TAction("add-action-tmlsd", "Action state", IconManager.imgic512, IconManager.imgic512, "Action state", "Add an action state to the currently opened communication pattern sequence diagram", 0);
//System C-AMS
actions[CAMS_EDIT] = new TAction("add-action-C-AMS", "Action state", IconManager.imgic100, IconManager.imgic101, "Action state", "Add an action state to the currently opened SystemC-AMS diagram", 0);
actions[CAMS_BLOCK] = new TAction("C-AMS-block", "Add a block", IconManager.imgic5000, IconManager.imgic5000, "Block", "Add a Block to the currently opened SystemC-AMS Diagram", 0);
actions[CAMS_CONNECTOR] = new TAction("C-AMS-connector", "Add a connection", IconManager.imgic202, IconManager.imgic202, "Connector", "Connects two block of the currently opened SystemC-AMS Diagram", 0);
//ProActive State Machine Diagram
actions[PROSMD_EDIT] = new TAction("edit-prosmd-diagram", "Edit ProActive state machine diagram", IconManager.imgic100, IconManager.imgic101, "Edit ProActive state machine diagram", "Make it possible to edit the currently opened ProActive state machine diagram", 0);
......
/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
*
* ludovic.apvrille AT enst.fr
*
* This software is a computer program whose purpose is to allow the
* edition of TURTLE analysis, design and deployment diagrams, to
* allow the generation of RT-LOTOS or Java code from this diagram,
* and at last to allow the analysis of formal validation traces
* obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
* from INRIA Rhone-Alpes.
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited
* liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
*
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*/
package ui.het;
import myutil.GraphicLib;
import ui.*;
import ui.window.JDialogCAMSConnectingPoint;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Point2D;
import javax.swing.*;
import java.util.Vector;
/**
* Class SystemCAMSConnectingPoint
* Definition of connecting points on which attribute connectors can be connected
* Creation: 27/06/2017
* @version 1.0 27/06/2017
* @author Côme Demarigny
*/
public class CAMSConnectingPoint extends TGConnectingPointWidthHeight {
protected int x, y; // relative cd and center of the point
protected int state;
protected CDElement container;
private boolean free = true;
protected boolean editable= true;
private int id;
protected TGConnectingPointGroup cpg;
public String type, rate, ccpName = "Connection";
protected boolean in;
protected boolean out;
public JDialogCAMSConnectingPoint dialog;
protected Color myColor;
protected static final Color IN = Color.gray;
protected static final Color OUT = Color.black;
protected static final Color INOUT = Color.red;
protected static final Color NO = Color.white;
protected TGConnector referenceToConnector;
public CAMSConnectingPoint (CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) {
super(_container, _x, _y, _in, _out, _w, _h);
if (_in) {
if (_out) {
myColor = INOUT;
} else {
myColor = IN;
}
} else {
if (_out) {
myColor = OUT;
} else {
myColor = NO;